Skip to main content

Full text of "Your_Commodore_Issue_22_Jul_86"

See other formats


£1.00 



FROM YOUR C64 




WIN A VIDEO 
DIGITISER 
WITH NEXUS 



FUJI HUM mm-! 

MD2D 




o- 



5q, 






cm it crwm 

jri.il 



DISK FILING FOR YOUR C12i 



ANTICS 

ON YOUR CI 6 Ok 

PLUS/A 

C128 ASSEMBLER 



GET YOUR NAME ON THE 




[= Fj" [J [= 




i — (r^i 



If you have ever bought another golf 
simulator - shoot yourself! 
If you are ever considering it - 
save yourself a bullet! 
ZZAP64 



Quite honestly, leaderboard makes 
all other golf simulations look clumsy 
and antiquated in comparison. 

ZZAP64 



This is the sports simulation of the 
year - if not the decade! 

ZZAP64 




And swing your way to a record round 



Now you can become a golf pro and experience the thrill ol 

having your name up on the "Leaderboard". 

With this amazingly realistic simulation you get a true 

perspective view of your golf game. 

As you ptay on different 18 hole courses on 

levels varying from amateur to touring professional you'll 

need skill concentration and control to come in under par. 



LcnocRBonno 

• COLT * 



^o._Li-i^r.':ij;:.: irj 
_ • 



TEE SHOT 




m i 

DM ■ 

r i 

■in 




US, At 




IP 



Features: 

• Choice of club, distance, type of 
shot (hook, slice, putting) and more 

Realistic Sound 

• Practice Driving Range 
Joystick Controlled 
Multiple 18 Hole Golf Courses 

• Automatic Scoring 

APPROACH SHOT PUTTING 



U. S. Gold, Unit 10. The Parkway Industrial Centre, Heneage Street, BIRMINGHAM B7 4LY. Tel. No. 021 3593020 



JULY 1986 

VOLUME 2 
NUMBER 10 



Editor: 
Stuart Cooke 

Assistant Editor: 

Mane Curry 

Advertisement Manager 

John McGarry 

Advertisement Copy 
Control: 

Laura Champion 

Group Editor: 

Dave Bradshaw 

Group Managing 
Editor: 
Wendy Palmer 

Managing Director: 

Peter Welham 

Origination: 

Ebony Typesetting 

Design: 
Argus Design 



Editorial & Advertisement Office 
No 1 Golden Square! 
London W1R 3AB 
Telephone 01-437 0626 
Telex 8811896 

Your Commodore incorporating 
Your 64 is a monthly magazine 
appearing on the first Friday of 
each month 

Distribution by: Argus Press 
Sales & Distribution Ltd. 12-18 
Paul Street, London EC2A 4JS 
Printed by: Alabaster Passmore 
& Sons Ltd, Tovil. Maidstone, 
Kent. 



Subscription rates upon 
application to Your 
Commodore Subscriptions 
Department, Infonet Ltd, Times 
House, 1 79 The Marlowes, 
Hemel Hempstead, Herts HP1 
IBB 



The contents ot this publication 
including all articles, designs, 
plans, drawings and programs 
and all copyright and other 
intellectual properly rights 
therein belong to Argus 
Specialist Publications Limited 
All rights conferred by the Law 
of Copyright and other 
intellectual property rights and 
by virtue of international 
copyright conventions are 
specifically reserved to Argus 
Specialist Publications Limited 
and any reproduction requires 
the prior written consent of the 
Company 1 1986 Argus 
Specialist Publications Limited 




FEATURES 




Cheap Copy 

Citizen's new printer - for under £50. 

Dial-A~File 



16 

30 

A file editor to complement our Telephone Exchange program. 

Remember the Plus/ 4 35 

A look inside the Plus/4's memory. 
Graphically Speaking 



Doodling with CRL's new graphics package. 
Amiga Playtime 



And now there are games for the Amiga. 
Game Maker 



Stuart Cooke reviews Activision's latest utility. 




SERIES 



Programming the C-16 

Amass more knowledge about your C16's capabilities 

i Froggy 

Touching up your arcade game. 

Programming the 1541 



Get in a spin with our disk drive series, 
i Chip Chat 



Understanding the inmost secrets of your computer. 
Going for a Song 



Musical tricks for your C64. 

Welcome to the Machine 

Teach yourself machine code - made easy. 



REGULAR 




Data Statements 
Missive s 



Game of the Month 
Action Rep/ay 



Communication Corner 
Club 128 



Software for Safe. 

Oops! 

Listings — , 



COMPETITION 

Detailed Directories 




A special disk routine for your C64. 

■ The Monster Returns 

Type in this C64 game. 

■ Assembler 128 



First part of our Editor Assembler for your 1 28. 
■ Go Faster 64 



Speed up your C128 in C64 mode. 
■ Lunar Ordeal 



38 
54 
82 



24 
28 
56 
58 
70 
84 




10 
18 
45 
60 
74 
76 
80 
96 




21 

40 

62 

68 

77 



A space age games program. 




The incredible 
Citizen two-colour dot matrix printer! 



Thanks to a super deal we can offer you this 
highly advanced, high guality printer at the low, low 

price of £49.991 

You can make more of your Commodore with 
the CITIZEN printer. If you have a VIC-20, C64. C16, 
Plus-4, C 128 or C 128D, you'll be expanding into word 
and data processing in no time at all. 

This top notch printer from CITIZEN — famous 
for hi-tech watches and electronic office products — is 
packed with some really stunning features . 

All you have to do to obtain your CITIZEN 
printer is to complete and post the coupon below, 
enclosing payment for £49.99 plus £2.50 p&p. But 
hurry, stocks are limited! 



Compatible with Commodore VIC-20. C64. C 16, 
Plus-4. C128 and C 128D Home Computers. 
Helical-drrven print head - as used on expensive 
printers. 

Seven-wire dot matrix head. 
Uses STANDARD plain paper roll. 
Uses STANDARD two-colour typewriter ribbons. 
Responds to Epson control codes in dot 
addressable graphic mode with single and multi- 
line printing. 

Prints Commodore graphics and inverse 
characters. * 
Programmable line spacing and <v 
expanded print capability. »o° 



Available from all good 
computer stores nationwide 




News 



Software Shopping 

Software is an area of the computer 
market which is nearly always booming 
with new products. At the moment 
there is a vast choice and everyone 
should find something to please them 
from utilities to the most basic of zapp- 
ing games. So let's launch ourselves into 
the software supermarket straight away. 



Something for Everyone 



Those of you who have bought and 
enjoyed New Generation games in (he 
past, will be interested to know that 
Virgin Games has now acquired all rights 
to New Gen's back catalogue plus the 
rights to seven new tilles. 

No one has yet announced which 
Commodore titles are going to be 
included in this new deal or given 
release dates, however Virgin's Nick 
Alexander was very effusive about the 
new deal: "I have been a fan of New 
Generation's software since my first days 
in the business when I saw their ZX81 
programs at Microfairs. We've both 
come a long way since then and I look 
forward to further progress." 

Chess buffs, always on the look out 
for a new way to indulge their regrett- 
able addiction, should look out for 
Audiogenic's Grand Master Chess. This 
version has now been around for a while 
but Audiogenic recently announced 
that the C-16 game is now totally com- 
patible with the Plus/4. £8.95 is the price 
for C-16, Plus/4 and a seperate C64 
version. 

Quicksilva has invented a new ' 
character - Jeremy the punk photo- 
grapher. He has to wander around 
snapping new inventions to meet his 
editor's photography deadline (sounds 
familiar!). Your Commodore's photo- 
graphic boys seem to have an easier life 
since they haven't yet had mutant 
monsters trying to nick their film! Look 
out for Jeremy in Quicksilva's Hocus 
Focus (£8.95) on the C64. 

Those who like a bit of recent history 
intermingled with their gaming can try 
Microprose's Conflict in Vietnam war 
game. The game features events dating 
back to 1954 and features the decisive 
battles of la Drang (1965), Khe Sanh 
(1968) and Cambodia (1970). There is 110 
pages of documentation to keep you 
occupied for hours. In the states it sells 
for $39.95 so you'll need to be a fairly 
dedicated war gamer to afford this one. 

Ariolasoft is hoping you'll prefer the 
more leisurely pursuit of a few rounds 
on the green and try your hand at the 
new Golf Construction set. Build your 
own golf course or just play around on a 
few world famous ones which are 
reproduced on the program - The 
Belfry, Wentworth Old Course, 
Sunningdale and Royal St George. 



DATA 

STATEMENTS 




An added incentive for those who 
become really expert is Ariolasoft's mag- 
nanimous offer of £500 worth of golf 
equipment for the first 12 people who 
get their handicaps down to scratch 
(zero - to us uninitiated plebs). The disk 
version is on sale for £14.95 and a twin 
cassette version is priced at £12.95. 

Touch Line 

Virgin Games: 95-99 Ladbroke Grove, 
London W11 1PG. 

Audiogenic: 12 Chiltern Enterprise 
Centre, Station Rd, Theale, Berks RG7 
4AA. 

Quicksilva: Liberty House, 222 Regent 
St, London W1R 7DB. 
Microprose: 120 Lakefront Drive, Hunt 
Valley. Maryland 21030, USA. 
Ariolasoft: 68 Long Acre. Covent 
Garden, London. 

Outer Spacers 

AS ALWAYS THERE ARE MASSES OF 
games newly available which have an 
interstellar setting. 

Bubble Bus has come up with a cute 
game featuring Blob - Bio-Logically 
Operated Being (well, aren't we all?). 
The game is Starquake and Blob has to 



scurry through a tunnel and cave 
network inside a planet to collect 
various bits and pieces to rebuild the 
planet's core. There are over 500 
locations and features including - Anti- 
grav lifts, Teleportal systems, planet 
surface, Security doors, sub planet 
exploration, propulsion pads and 
planetary beings (hostile). It's £8.95 on 
cassette for the C64. 

Fans of TV's sci-fi series V will be 
pleased to know that Ocean has 
released the game of the series on C64 
on cassette. For those who missed the 
telly program, the scenario is invaded 
Earth and the baddies are lizard-like 
aliens whose leader is called Diana! You 
play the part of the leader of the 
resistance movement, Michael 
Donavan. All you need to do is find out 
the formula for Red Dust so that you can 
use it to exterminate the aliens by pollut- 
ing their air conditioning. 

It's available now and costs a mere 
£8.95. 




Imminently arriving in your local 
computer shop is CRL's new sci-fi 
adventure, Tau Ceti. Set on a plague- 
devastated earth colony in the middle of 
a far flung interstellar galaxy, your role is 
that of the intrepid suicidal maniac who 
has volunteered to go and repair the 
damage defence system of the stricken 
planet so that it can be recolonised. The 



5 




only way to do this is shut down the 
massive fusion reactor which fuels the 
planet. 

If you want to die quickly and often it 
might be worth a shot at £9.95. 

Touch Line 

Bubble Bus: 87 High Street, Tonbridge. 
Kent TN9 1RX. 

Ocean: 6 Central Street. Manchester M2 
5NS. 

CRL: CRL House, 9 Kings Yard, 
Carpenter's Rd, London E15 2HD. 

Work, Work, Busy, Busy 

Never a dull moment from Ariolasoft. 
This prolific software house has recently 
released three new utility programs. 

The first - Calkit{£34.95}- is a toolkit 
for solving number problems. It should 
help you sort out the mess which is play- 
fully termed your finances. Balance your 
cheque book, simplify your income tax 
and develop accurate home and busi- 
ness budgets. In other words it's a very 
simple to use spreadsheet. 

If you use your C64 or C128 to run a 
business from home then perhaps 
Ariolasoft's second utility will be of 
interest to you. Entitled B/Graph, it is a 
visual presentation tool for sales, 
marketing, forecasting, accounting, 
management and could also have used 
for teachers and students. It costs £29.95 
on C64/128 disk. 

Last, but not least in the new Ariola- 
soft batch of utilities is Paperclip with 
Spellpack. It's a word processing 
package on C64 disk. Ariolasoft claims 
that it's time saving and in addition you'll 
produce totally error free documents 
because of the 15,000 word dictionary. 
This one's for the C64 disk and is priced 
at £59.95. 

Back to spreadsheets and 
Audiogenic's successful Swift spread- 
sheet is now available on cassette or 
disk. The package includes two copies of 
the program. One runs on the C64 and 
C128 in 64 mode and the other runs on 
the 128 and uses the full 128K memory 
and 80 column display. 

Audiogenic has also imported Turbo 
MIRV (Multiple Information Retrieval 
Vehicle) from the states. It loads into the 
64 or 128 and runs concurrently with 
other programs so the user can switch 
between the main program and the 
desktop functions of Turbo MIRV. 
Functions include calculator, memo 
pad, alarm clock, calendar and auto 
dialler. 

Touch Line 

Ariolasoft: 68 Long Acre, Covent 
Garden, London. 

Audiogenic: 12 Chiltern Enterprise 
Centre, Station Rd, Theale, Berks, RG7 
4AA. 



Adventure Spot 

If YOU'RE FED UP WITH DEADLY 
serious adventures then maybe Mel- 
bourne House's latest offering will bring 
a breath of fresh air to your life. 



The new game is called Red Hawk 
and is billed as a comic strip adventure. 

The hero, an ordinary guy called 
Kevin Oliver alternates between his 
normal self and Red Hawk. This miracu- 
lous transformation is brought about 





when he shouts 'Kwah'. Super human 
skills enable him to battle against the 
villains and criminals in the city. It's 
available now and costs C8.95. 

Beyond has now releasedits success- 
ful Spectrum title - Doomdark's 
Revenge - (or the C64. It is the sequel to 
Lords of Midnight and contains 6,144 
locations and 48,000 views! 

It's an adventure cum war game set in 
a medieval fantasy world. It's a text 
adventure but there is a difference in 
that all possible moves can be accomp- 
lished by pressing only one key. There's 
a free audio cassette with the games 
which tells the story of Doomdark with a 
musical accompaniment. The price is 
£9.95. 

Ariolasoft has also released a sequel. 
This one's unimaginatively entitled 
Archon II and - predictably - is the 
sequel to Archon. It's on C64 cassette m 
and costs £9.95. 

There's also a new text adventure 
now out from CRL The game is called 
Pilgrim and it's for the C64. 

It is set in the peaceful land of 
Meridian and you play the role of a 
young boy who has been given the task 
to go in search of The Guardian - not it's 
not a newspaper, it's the mysterious 
protector of the land. The price is £7.95. 

Touch Line 

Melbourne House: 60 High Street, 
Hampton Wick, Kingston-upon- 
Thames. Surrey KT1 4DB. 
Beyond: Wellington House, Upper St 
Martins Lane, London WC2H 9DL. 
Ariolasoft: 67 Long Acre, Covent 
Garden, London. 

CRL: CRL House, 9 Kings Yard, Carpen- 
ters Road, London E15 2HD. 

Alternative Taste 

CRL HAS NOW RELEASED ROCKY 
Horror Show on C128. 

The company promises that it is the 
most exciting version of the game to 



date using the extra memory available, 
high definition graphics, new sprites, 
new animation, new locations, 
enhanced music and new game play 
features. It costs £8.95. 

Nu Wave, CRL's alternative software 
house, has announced the release of 
Tubular Bells for the C64. The program is 
claimed to be 'entertainment offering 
amusement for the user in both an active 
and passive form'. The program has two 
parts - a sound track and a light syn- 
thesiser. The sound track is Mike Old- 
field's classic LP generated by computer. 

The light synthesiser can be left to 
run itself or you can intervene to create 
your own patterns. It should be in the 
shops now and 795 pennies are required 
to buy it. 

Touch Line 

' CRL (and Nu Wave): CRL House,9Kings 
Yard, Carpenters Road, London E15 
2HD. 

In Touch 

COMPUNET IS GETTING INTO THE 
action with its own multi-user game. 

The planned title is Federation II and 
there are over 6,000 locations. About 
1000 of these will be in use at any one 
time. In comparison, MUD has about 
400 locations. 

Federation II is in the galactic trading 
genre and Alan Lenton, one of the 
authors, commented: "Just as MUD 
arose from dungeons and dragons, 
federation II is a development of the 
role-playing game Traveller. It will be 
very different from MUD in concept." 

The game is scheduled for an early 
1987 launch. 

Micronet has been busy lately. 
Interlex is now providing technical sup- 
port for Micronet members. 

Readers can either send their queries 
via electronic mail and replies can be 
found from page "8009007. 

There is also a hotline where Micro- 
net members can get their queries 



answered immediately. Micronet 
members can subscribe to this for £25. 

Micronet has also been involved in 
another charity excercise. 

Capital Radio's Help a London Child 
appeal has benefitted recently to the 
tune of £1300. This was raised from a 
frame-charged celebrity chatline. 

Touch Line 

Compunct: 7-11 Minerva Road, London 
NW10 6HJ. 

Micronet 800: 8 Herbal Hill. London 
EC1R 5EJ. 

Generally Speaking 

FIRST SOFTWARE AND PUBLISHING 
has decided to blitz the computer 
industry with new launches. 

There are 24 new books and nine 
new software packages scheduled for 
release this year. 

There will also be general reference 
manuals to examine specific aspects of 
the C64 and C128. The Anatomy of the 
C128 and Tricks and Tips for the Cl28are 
already available priced at £12.95. 

Level 9 Computing is taking a stand 
against software piracy. 

Level 9 has also begun using a 
Lenslok, a controversial anti-piracy 
device. 

Lenslok tests have been placed at 
several places in the story of Level 9's 
game the Price of Magick, instead of 
only at the beginning and the software 
has been reduced to a third of its original 
size. 

Each Lens issued has been printed 
with the name of the game to avoid 
confusion. 

All Your Commodore readers who 
consider themselves budding profes- 
sional programmers can take heart 
because Superior software has begun a 
campaign to find some new 
programmers. 

Superior's Richard Hanson said: 
"This programmer recruitment drive is 
unique. Only a few companies have 
used full colour advertising for this 
purpose before, and, via the adverts, we 
are offering a free guidebook Top Tips 
for Programmers'." 

Sales manager Ken Campbell added: 
"We're looking for programmers of all 
the major micros: the Spectrum, Comm- 
odore, Amstrad, Atari. BBC and 
Electron." 

So if you want information on this 
campaign contact Superior of look out 
for the ads. 

Touch Line 

First Publishing: Kenilworth House, 79- 
80 Margaret Street, London WIN 7HB. 
Level 9: PO Box 39, Weston-Super- 
Mare, Avon BS24 9UR. 
Superior Software: Regent House, 
Skinners Lane, Leeds LS7 1AX. 



Win a digitiser from Nexus 



for your C64. 



THIS MONTH WE'VE SET UP A 
competition with Nexus which may 
enable you to win a digitiser for your C64 
plus a copy of the Nexus game. 



The top prize winner, will be the first 
person picked out of a hat after the 
closing date to get the correct solution. 
The digitiser is worth approximately 
£150 and there's a copy of the Nexus 
game thrown in. 

There will also be 24 copies of the 
game as runners up prizes. 

The competition is based on the plot 
of the Nexus game to give you a taster of 
what you could win. 

How to Enter 

Study the diagram on this page and then 
carefully read the following instructions. 

1. You are standing in a corridor of the 
drugs HQ. Your objective is the trans- 
mission room from where you can 
broadcast the facts of your investigation 
to the world. You are disguisded as a 



transmission room guard. 

2. Exchange places with the transmission 
room guard, so that YOU are in the 
transmission room and HE is in the 
corridor. 

3. There is one key rule - Only one 
person may occupy a room or the 
corridor at any time. And only one 
character - a guard or yourself - may 
move per turn. 

4. How many moves are required to 
achieve this and what are they? 

Instructions 

When vou have solved the puzzle, fill in 
the entry form and attach a list of your 
answers to it on a plain piece of paper. 
Please write the number of moves you 
used on the back of your envelope. 

Closing date: Friday 25 July 1986. 



n 
u 



n 



1_T 



"L 



The Corridot 




You Disguised as Transmission Guard 





Post code 



j Nexus Competition 
j Entry Form 
j Name 

I Address 

I 

| Number of moves used 

I Send your entry to: Nexus Competition, Your Commodore, 1 Golden 

I Square, London W1R 3AB. Closing date: Friday 25 July 1986. 

I Please attach a sheet describing the moves you used. Please write clearly on 

| the Entry form and your answer sheet. 

I 1 



The Rules 



Entries will not be accepted from 
employees of Argus Specialist Publica- 
tions, Nexus Productions Ltd and 
Alabaster Passmore and Sons. This 
restriction also applies to employees' 
families and agents of the company. 

The How to Enter and Instructions 
sections form part of the rules. The 
editor's decision is final and no corres- 
pondence will be entered into. 



it 



DOYO 



ANT TO BE A 




The result of unique cooperation between three ace software developers 
and the Biggies film production company, Biggies - The Untold Story wi 
knock you right out of the air! It's a multi-part arcade strategy game in 
which each part must be completed to reach your final goal. 

In the air, on the rooftops, on the ground, or in the trenches 

YOU CAN BE A HERO! 



Coming in May 



Commodore 64 
Spectrum 48 K 



£9.95 tape, £12.95 disk 
£9.95 tape 



Coming In June 



Amstrad CPC 

E 



£9.95 tape, £14.95 disk 



Purnell Book Centre, Paulton, Bristol BS18 5LQ 




Your letters continue to 
flood in, keep them coming 
so we know what you want. 



Decline and Fall 

IT CAN BE SAFELY SUGGESTED THAT 
the home computing industry is 
primarily aimed at those who play 
computer games and those who wish to 
develop programming skills and the 
usage of their machine. However, there 
appears to be a growing contradiction 
between these ideas and the content of 
available publications. 

In response to Allen Webb's letter 
(April 86. Your Commodore), I find it 
increasingly difficult to find fault with his 
synopsis that the home computing 
market is in decline. Virtually all of the 
British home computing magazines. 
Your Commodore excepted, offer a 
diminishing amount of real interest to 
the average key bashing fanatic. 

As an example, one magazine, 
although not specifically Commodore 
orientated, has always been able to offer 
a cross section of professional programs 
and utilities for the discerning reader. - 
Unfortunately this format appears to 
have been re-directed towards more 
advertising, previews and reviews for 
hardware and software. Although I 
understand the need for publication to 
advertise, and indeed the value of in- 
depth reviews. I find it difficult to see 
why this must be achieved at the 
expense of actual programming (the 
very basis of home computing). Surely a 
lack of programs, hints, utilities etc. will 
bring into question the concept of value 
for money. Subsequent loss of readers 
will inevitably lead to loss of revenue 
from advertising until eventually...? 

Although I have now joined the 
ICPUG, I have recently found the need 
to purchase American magazines such 
as Compute! and RUN to satisfy my 
hunger for new ideas and information. 
Both of these magazines offer good 
quality diverse programs whilst still 
advertising. The problems with this 
situation are that firstly, these magazines 
are wildly expensive (approx £3) and 
secondly, in my heart of hearts I would 
much rather purchase an English 
monthly that can compete, if not 
surpass, the American competition. 

As many magazines have either 
disappeared or are on the brink of 



oblivion, I shall watch future editions of 
Your Commodore with apprehension 
and perhaps a little hope. At present I 
am generally pleased with the quality of 
the magazine and writers such as Allen 
Webb continue to perpetrate this 
quality. Your Commodore appears to 
be the last bastion of sensibility for home 
computing enthusiasts or are there 
changes on the way that I should fear? 
L. Lack 
Manchester 



Soft Sale 

REGARDING THE SOFTWARE FOR SALE 
offers in recent Your Commodores, 
might I enquire as to which programs 
are on the MAY YCMAR86 cassette? Are 
readers expected to purchase these 
tapes not knowing exactly which 
programs they will receive. 

Could you indicate at the end of a 
program or article whether or not it will 
beon the Software for Sale cassette. I 



am sure you could do this without 
taking up too much valuable space. 

I am interested in purchasing the 
May cassette providing the program, 
Wordprok. by Ian Murray will be 
included. 
James O. Yarker, 
Pickering 

Thank you for your interest, James. We 
have found that our cassette offer has 
been immensely popular, but we also 
appreciate your problem. Firstly, the 
Wordprok program is included on the 
May cassette. All C64 and C128 programs 
featured in each issue of Your 
Commodore are included on the 
cassette for the relevant month. We are 
looking at a system whereby we can put 
a small logo on certain pages to indicate 
whether the article is one selected for 
the cassette that month, 

Unfortunately we cannot as yet 
supply C-16 and Plus/4 programs in the 
same way but we are looking into the 
possibility of this. 





Enter the world of Avenger, a Nlnja warrior 
off unparalleled skins and deadly powers, as 

tie battles the forces Of evil in defence of nls 
faith and protection of the weak. 

Be calm and stay silent as the outstanding 
animation and unrivalled combat routines 
take you to levels of action you o never have 
Im - thought possible. 



Experience the stunning effects of triple 
scrolling action as you master the techniques 
of Hand to Hand combat, Pole Fighting and 
the skills of the Samurl sword 

And when you believe you've succeeded In 
overcoming all the odds, the next In this 
thrilling series of adventures win beckon you 
forward to a further challenge of death. 



cremHn Graphics software limited, Alpha House, 10 Carver Street, SfWf nc M 51 «s. t«: 0743-753U2 s < 



screenshots from Spectrum 48K 




Frank Tout helps you 
to clear up your litter] 
and file it safely. 



ONE PROBLEM WHICH THE 

vast majority of disk drive 
owners come across sooner 
or later, is the massive con- 
fusion which can build up 
when you realise that you 
have large numbers of disks 
lying around and you have no 
idean what's on any of them. 
When it comes to finding a 
specific file then the process 
is annoying and tedious. 

Help is at hand, with this 
program - Disk Base 128. It 
will store the contents of up 
to 300 disks on file and help 
you find what you need. 

What It Does 

When you run the program, 
press 'space' at the title page 
to enter the main program. 
You will then be faced with 11 
icons and a flashing cursor. 

To place disk file-into the 
program's memory move the 
cursor (using the cursor keys - 
left and shift left) over the 
Write File icon and press 
return. You will then be asked 
for a field number. 1-300. 
Select your choice and then 
insert the disk which you 
want to store in memory in 
the disk drive. Then, press 
Return. The program will 
then load the directory and 
store it. 

When this is complete, 
press Return to gel back to 
the menu. The contents of 
that disk are now stored 
under the field number 
which you selected. 

You may now repeat the 
process as many times as you 



wish, just increment the field 
number every time. 

If you store the same disk 
twice, or you merely wish to 
get rid of one which you no 
longer need, then you can 
delete it by selecting the Erase 
File icon. In this case, when 
asked which field number 
you wish to erase, simply 
make your choice and key it 
in, press Return and the file 
is then erased. 

When you've finished and 
all your disks are in memory, 
select the Save File option. 
You should then enter the 
number of fields you wish to 
save. For instance if you only 
have 40 disks in memnrv in 
fields one to 40, then you can 
just save that number of files. 
It's quicker and saves 
memory. 

Load files is simply the 
reverse of Erase Files. Select 
the Load icon, enter the field 
limit and file name and press 
Return. 

The Scratch icon is so that 
you can remove an unwanted 
file from disk without 
breaking out of the program. 
Select the Scratch icon, press 
Return and enter the file 
name to be erased. It's as easy 
as thai. 

The Directory Icon will get 
the directory of a disk and 
display it on the screen but it 
will not store it in memory, it's 
just to check and view disks 
without leaving the program. 
Select the Dir icon and press 
Return, the directory will 
then load, press space lo 
return to the menu. 

New disk is selt ex- 
planatory. 

View files icon will display 
the contents and/or titles of 
disks in memory. Select View 
icon and press Return. Then 
you can select TITLES or FILES 
by pressing T or F. 



When selecting titles 
enter the field limit you wish 
to examine (1-XXX). The 
program will then list all the 
titles in memory in that 
section. Press Relurn to 
return. 

When selecting Files enter 
the field number you wish lo 
look at and press space, that 
will then be displayed lo you. 
Press space lo return. 

If you know you've got a 
file somewhere but can't 
seem to find it select the Find 
File Icon and press Return. 
You will then be asked what 
file you're looking for. Enter 
the title and press Return. The 
program will then search the 
fields and list any which 
contain your lost file. Press to 
return. 

Print files will list to the 
printer ihe title and contents 
of a field of your choice. 
Select the icon, press Return 
and enter the field you 
require to be printed. 

The icons available to you 
(from left lo righl) are: 
Write File, Erase File, Save 
Files, Load Files, Scratch file. 
Directory, New Disk, View 
Disk, End Program. Prim File. 
End file takes you back to the 
title page, ihe disks in 
memory will not be lost. 

The Program 

The program is REMmed so 
you can follow it and the data 
statements are for ICONS. 

Variables 

FE - field 

di$(x.x) - Dim/array for disk 
contents 

cS(x) - Dim array for titles 
a$(x) - arrays for icon data 
P$ - lower case 
PP$ - carriage return 



[PROSRAH: DISKBftSE | 



0 poke532B8,8:poke53281,B:cl 

r:fast:diidi$(30B,6B):ditc$( 

60) :p*=chr$(14):pp$=chr$(13) 

:printp$ 

2 gosub286 

4 goto25B 

6 color0,12:colorl,l:color4, 
13:graphic2,l,12:iiindotf0,12, 
39,24:poke 532B1 , 15 :printchr 
1(144) :slo* 

8 v=B:foPt=lto8:gshapea$(t), 
v,4:v=v+2B:next 
18 fopt=lto3:gshapebm>,v,4 
:v=v+2B:next 
12 charl f l v S f pf+ a 
Couand. 

M 

14 chapl,10,7,p$+" 

■,l:lo=ll:v=312 
16 ifdaMthencharl.B.ll,"!!! 
tdata in ■eiopytlttdata in ■ 
eior-vUUM 

18 sprite4,l , l>rnd (1 ) t 15 T 1 :■ 
ov5pr4,v,54 

28 getz$:ifz$="thenl8 

22 ifz$="[lEFT] a andv>36thenv 

=v-28:lo=lo-l 

24 itz$='[RIGHT]"andv<312the 
nv=v*28:lo=lo+l 
26 ifz*=pp$then30 
28 gotolB 

38 onlo goto34,84,206,240,90 
,118,124,156,186,258,224 
32 end 

34 gosub452:inpuf field No:- 
a ;fe 

36 charl,5 t 7,p*+* Write File 
to Base ",l:prinf [RVSOMFe 
ild ";fe:sleep3 
38 printchr$U44)chr$U47> 
48 open2,8,15 
42 openl^^/W* 
44 getll,a$,b$ 
46 gettl t a$,bl 
48 getll,a$,b$ 
58 c=8 

52 ifa$<>""thenc=asc(a$) 
54 ifb$<>""thenc=c+asc(b$>l2 
56 

56 print fl [RVSOtt] a ud$(str$(c 

),2);tabt3)'[RVS0FFr; 

58 getli,b$:ifst<>Bthen74 

68 ifb$<>chr$(34)then5B 

62 getll,b$:ifb$Ochr$134)th 

enprintb$;:di$(fe,i)=dil(fe, 

xi*b$:goto62 

64 9etll,b$:ifbf=chr$(32)the 
n64 



66 printtab(18J;:c*U)=" 
68 c$U)=c*(*)+b$:gettl,b$:i 
fb$O aa then6B 

78 print" IRVSOIUMeftKcHii) 

1 3):x=x«1:h=m*1 

72 ifst=0then46 

74 do5e2:closel:printchr$(l 

4)chr$ll49)chr$(147):ppintdi 

$ife,8):ppintchr$(31):fort=l 

tox:printdi$(fe,t);:ppinttab 

128>c$lt):next:K=8:c$U)= aa : 

da=l 

76 poke4097*fe,x:x=0 
78 print' Press Spac 

e When Ready" 
88 getq$:ifq$<>" "thenB0 
82 printchr$(147):graphic2,8 
,12:«indo«0,12,39,24:gotol2 
84 charl,10,7,p*+" Erase F 
ile. a ,l:sleep3 
86 inpufField No:- - ;fe 
88 fort=0to50:di$(fe,t)="":n 
Mtipriof File In Field 1 
;fe;" Nod Erased' :sleep4:pri 
ntchrf(147):gotol4 
98 reittscratch file 
92 chart, 10,7,p$+" Scratch 
File a ,l:sleep3 
94 gosub452 

96 input "Fi le Naie";na$ 

98 openl5,8,15:printli5, a s0: 

•♦na$ 

180 print" File ";na$;" 
Nom Erased" 
182 dosel5 
184 gosub458 

186 geta$ufa$<>" "thenl20 
10B gosub454:gotol4 
118 reitldiril 

112 chart, 10,7,p$+" Dir 
ectorg a ,l:sleep3 
114 gosub452 
116 directory 
118 gosub458 

128 geta$:ifa$<>" "thenl28 

122 gosub454:gotol4 

124 reitlneH disci! 

126 chart, 10,7,p$+" Nen 

Disc ",l:sleep3 

128 gosub452 

130 print" This Erases any D 

ata Stored on Disc ??" 

132 input'ARE YOU SURE";qu$ 

134 ifqu$="n"thenl54 

136 ifqu$= a y a thenl40 

138 gotol42 

140 gotol32 

142 inpufFile Naie';na* 
144 input" Identityltno nuier 
ics)";id 

146 headerna$,iid,d0,u8 



148 print" Disc Nov Read 
y And Fonatted" 
150 gosub450 

152 geta$:ifa$<>" "thenl52 
154 gosub454:gotol4 
156 reillexaiine files 
158 chart, 10,7,p$+" Exaiine 
Files. ",l:sleep3 
160 printchr$il47):input'[BL 
ACKJDisc [RVSOHlTtRVSOFFlitl 
e's or [RVSONJFCRVSOFFhles" 
;»t 

162 if»*="f thenl6B 
164 ifn$="f"thenl74 
166 gotol56 
168 gosub452 

178 inpufField Luif;fe 
172 fort=8tofe:prmtdiJ(t,B) 
;:printtab(3B);t:next:gotol8 
8 

174 gosub452 

176 inpufField No:-";fe 
178 printdit(fe ! 8):fortt=0to 
peek(4097*fe>:printdi$ife,tt 
):nexttt 
188 gosub458 

182 geta$:ifa«<>" "thenlB2 
184 printchr$(147):graphic2, 
0,12:HindoM0,12,39,24:gotol4 
186 reiHsort 

188 chart, 10, 7,p$+" Sor 
t File B ,l:sleep3 
190 printchr$(31}:inpuf What 
file Are Tou Looking Far, 1 ; 
kn$ 

192 print" Please Wait While 
I Look" 

194 :fort=0to380:fortt=0tope 
ek(4097+fe) 

196 ifkn$=diiit,tt)thenprint 
"File Found in Field ";t 
198 nexttt,t 
208 gosub450 

202 geta$:ifa$<>" "then202 
204 gosub454:goto!4 
206 reitlsave to disc 
20B chart, 18,7,pJ+" Save 
Files a ,i:sleep3 
210 gosub452 

212 inpufField Liiit:-";fe 
214 inpufFile Naie';na$ 
216 openB,8,8,'0:'+na$*",p,i* 
■:fort=8tofe:M=peek(4097+t) 
:printl8 1 HH:fortt=8tapeek(48 
97H):printl8,di$(t,tt),chr$ 
(44):nexttt,t:close8,B,8 
218 gosub458 

228 geta$:ifa$<>" "then228 

222 gosub454:gotol4 

224 reillppint files 

226 chapl,10,7,p$#" Prin 



t Files ",l:sleep3 

228 gosub456:inpuf Field No: 

-";fe 

230 open9 t 4,7:cid9:printchr$ 
(14) 

232 printdil(fe,0):print:for 
t=ltopeek(4097+fe):printdi»t 
fe,t):nextt 

234 printl9:close9:gosub450 
236 geta*:ifa$<>" "then236 
238 go5ub454:gotol4 
240 reiltload froi disc 
242 chart, 10, 7,p$* a Load 
Files a ,l:sleep3 
244 gosub452 

246 inpufField Litit:-";fe 
248 inpufFile Naie";na$ 
250 openB.B.a/lr^nal+'.p^ 
":fort=etofe:inputl8,iH(:poke 
4897*t,w:fortt=8topeek(4897 
+t):input!8,di$(t t tt):nexttt 
,t:close8,8,8 
252 gosub458 

254 geta$:ifa$<>" "then228 

256 gosub454:gotol4 

258 reiSttitle page 

268 sprite4,8:cDlor8,l :color 

I,12:color2,13:color3,16:col 

or4,l:graphic3 t l:scalel,648, 

280:Hidthl:sleepl:sloH 

262 box2, 140,98, 228, 178,45 

264 boxl, 140,60,220, 140, 45,1 

266 box2, 140, 60, 220, 140,45 

268 dran2,96,115to96,145:dra 

N2,266 1 86to266,!16:paint2,18 

8,144:paint2,98,116:paint2,2 

65,87 

278 fort=lto39step3:dran3,20 
0-t t 70H/2to244-t,92H/2:nex 
t 

272 nidth2:fort=0to5:dra«8,l 
88,125Htol58,l58H:next 
274 boxl,58,50,98,98, l l 
276 Midthl:circle3,74,74,10, 
10:paint3,77,77:a=l 
278 chart+rndUH3,B,3,chr$( 
14)*"Discbase <128>By F TOUT 
1986 Press Space", 1 
280 geta*:ifa$<>" "then278 
282 fast:goto6 
284 end 
286 rei 

288 fort=35B4to4896:reada:po 

ket,a:c=c+a:next 

298 fort=lto8:sprsavt,aHt): 

next 

292 fort=3584to3841:reada:po 

ket,a:c=cta:next 

294 fort=lto4:sprsavt,b$lt): 

next 

► 




296 ifc<>185598thenprint'dat 
a error:" :end 

298 fort=0to300:poke4097*t,0 
:next 

388 slon:return 
302 data255, 255,255, 128,8,79 
,128,8,159,128 

384 datal, 61 , 128,2, 121 , 128,4 
,241,128,9 

386 data225, 128, 19,193, 128,3 
9,129,128,79,1 
388 datal28,92,I,144,lB5,l,l 
45,113,1,145 

318 datal93, 1,147,1, 1,158, 65 
,1,152,65 

312 datal, 152,227, 1,143, 198, 
1,128,8,1 

314 data255,255,255,0,255,25 
5,255,128,8,1 

316 datal28,8,l,12B,8, 1,135, 
248,1,135 

318 data252, 1 ,135, 126, 1 ,134, 
63,1,132,31 

328 datal29, 132,63, 193, 133,2 

47,225,131,235,241 

322 datal29, 149 ,249, 128,282, 

253,128,181,127,128 

324 data58, 191, 128,25,95, 128 

,12,175,128,6 

326 data87, 128,3, 43,255,255, 
255,8,255,255 

328 data255, 128,8, 1,159,255, 

249,154,191,249 

338 datal49,95,249,154,191,2 

25,159,231,225,159 

332 datal95, 249, 159, 195,249, 

159,231,249,159,255 

334 data249, 159,231 ,249,159, 

195,249,159,195,249 

336 datal59, 195,249, 128, 8,1, 

128,24,1,128 

338 data68, 1,128, 126, 1,128, 2 
4,1,255,255 

348 data255,8, 255,255,255, 12 
8,24,1,128,126 
342 datal, 128,68, 1 ,128, 24,1 , 
128,8,1 

344 datal59, 255,249, 154, 191, 
249,149,183,225,154 
346 datat95,225, 159, 195,249, 
159,231,249,159,255 
348 data249, 159,231,249, 159, 
195,249,159,195,249 
358 datal59, 195,249, 159, 195, 
249,159,255,249,128 
352 data8, 1,255,255,255, 8,25 
5,255,255,128 

354 data8, 1,128,8, 1,157, 127, 



57,148,92 

356 data249, 154, 147,249, 149, 

99,225,159,132,97 

358 datal58,67, 137, 153, 195,2 

41,135,231,137,159 

368 data252, 121, 159,227,249, 

159,3,249,152,195 

362 data241,135,195,137,159, 

192,121,131,31,249 

364 datal28,8, 1,128,8, 1,255, 

255,255,8 

366 data255,255,255, 128,8,1, 

158,125,249,147 

368 datal7,25, 145, 17,249, 147 

,17,97,158,125 

378 data57, 128,8, 1,159, 231, 2 

25,159,195,249 

372 datal59, 195,249, 159,231, 

249,159,255,249,159 

374 data231 , 249, 159, 195,249, 

159,195,249,159,195 

376 data249, 159, 195,249, 159, 

255,249,128,8,1 

378 data255,255,255,8,255,25 

5,255,128,8,1 

388 datal55, 123,25, 157,67,25 

,149,114,73,151 

382 data67,89, 155, 121,241, 12 

8,8,1,159,231 

384 data225, 159, 195,249, 159, 

195,249,159,231,249 

386 datal59, 255,249, 159,231, 

249,159,195,249,159 

388 datal95,249,159,195,249, 

159,195,249,159,255 

398 data249,128,B,l,255,255, 

255,8,255,255 

392 data255, 128,8, 1,128,8,1, 
12B,8,1 

394 datal28, 126, 1,131, 129, 19 
3,156,8,57,168 

396 datal26,5,13I,195,193,15 

9,68,249,198,182 

398 datal25,254,98, 127, 198,1 

82,125,159,68,249 

488 datal31,195,193,168,126, 

5,156,8,57,131 

482 datal29,193, 128, 126, 1,12 

B, 8, 1,255,255 

484 data255,8,7 

486 data255, 255,255, 128,8,1, 

128,8,61,191 

488 data255, 253, 191, 254,29,1 

68,1,229,191,255 

418 data253,191 ,248,253, 168, 

15,5,191,255,253 

412 datal91, 135,253, 168, 128, 

5,191,255,253,188 




414 data63,253, 163, 192,5, 191 

,255,253,161,255 

416 data253,15B,8,5,191,255, 

253,128,8,1 

418 data255,255, 255, 8,255,25 
5,255,128,8,1 

428 datal59, 255, 249, 152,8,1, 
159,248,1,152 

422 dataB, 1,159,255,249, 128, 
8,1,159,128 

424 data25, 153,248, 25, 152, 68 
,25,152,15,153 

426 datal52, 1 ,249, 128,8, 1 ,15 

9,255,225,152 

428 data8,57, 152,8,25, 152, 8, 
57,159,255 

430 data225, 128,8, 1,255,255, 
255,8 

432 data 255,255,255,128,8,8 
1,128,8,65,128,15,289,128,15 
,193,128,11,289 , 128 , 9 , 
193 , 129 

434 data258,289, 129,248, 127, 
129,122,21,129,56,5,191,98,2 
1,191,15,253,175,66,129,167, 
8,129,171,66,129,161,255,129 
,168,80,1,168,16,1,168,88,1, 
255,255,255,8 

436 data8,8,8,31,255,252,32, 
0 

438 data2,39,255,242,48,8,18 
,41,255,282 

448 data42,8,42,42, 127,42,42 
,128,178,42 

442 datal56, 178,42, 162, 178,4 

2,162,178,42,156 

444 datal70,42, 128, 170,42, 12 

7,42,42,0,42 

446 data41 , 255,202,48,8, 18,3 

9,255,242,32 

448 data8,2,31,255,252,8,8,2 
55 

458 print" Press Space 
To Continue.' :return 
452 sprite4,8:pnntchr$(147) 
:graphic8,l:tiindoti0,0,39,24: 
print' Press No Scroll To St 
op and Continue. ':mndo»i0,l, 
39,24 :return 

454 printchr$U47>:graphic2, 
0 1 12:mndo»i0,12,39,24:return 
456 sprite4,8:prmtchr$(147> 
:graphic8,l:*indoii8,0,39,24: 
print' Please Ensure Printer 
Is Switched 0n.':MindoH8,l, 
39,24:return 



THE FINAL CARTRIDGE 

THE FIRST OUTSIDE OPERATING 
SYSTEM FOR TIJE CBM 64 * 




NEW FINAL 
CARTRIDGE 
INCLUDING 




This new operating system built in a cartridge 
does not use any memory and is always there. 
Compatible with 98% of all programs. 



DISK TURBO ■ 6 times faster loading - 
b times faster saving. 

TAPE TURBO - 10 times faster, even 
with files - normal Commodore 
commands - compatible with standard 
turbo's. 

ADVANCED CENTRONICS INTER- 
FACE - compatible wiih all the well- 
known Centronics printers and Commo- 
dore printer programs. Prints all the 
Commodore graphics and control codes 
(important for listings). 

SCREEN DUMP FACILITIES - of low- 
res Hi-res and multicolour screens!! 
Prints full page with 12 shades of grey 
for multicolour pictures even from games 
and programs like Doodle. Koala pad. 
Pnntshop etc. Searches automaticly for 
the memory-address of the Picture. 
Special version available for the CBM 
801 and 803 printers 

24K EXTRA RAM FOR BASIC- 
PROGRAMS AVAILABLE: Twu new 

commands Memory read", ..Memory 
write". They move 192 bytes with 
machmelanguage-speed anywhere in the 
64K Ram of the CBM 64 Can be used 
with strings and variables. 

BASIC 4.0 COMMANDS - like Dload. 
Dsave. Dappend. Catalog, etc. 

BASIC TOOLKIT - with Auto, Renum 
lincl. Goto and Gosub), Find, Help, Old. 
etc. 

• works with C128 in the 64 mode. 



Original multicolour full page screen 
dump print out. 

PREPROGRAMMED FUNCTION 

KEYS: - Run. Load. Save. Catalog. Disk 
commands, List (removes all hst- 
protections) 

KEYBOARD EXTRA'S - Allows you to 
delete part of a line, stop and continues 
listings; move cursor to lower lefthand 
corner Pokes and Syscalls in Hex. Typ- 
command operates your printer as a 
typewriter. 



COMPUTERS 



COMFORTABLE EXTENDED ML. 
MONITOR: - with relocated load 
scrolling up and down. Bankswitching, 
etc • does not reside in memory. 

RESET SWITCH: - resets to monitor, 
resets with old, resets to Hi-res printing; 
resets every protected program. 

ON/OFF SWITCH - we hope you never 
need that one. 



Stops and continues almost every 
program and allows you to make a total 
back up to disk or tape automatically. 

Specs Creates one file on disk or tape 
Packs the program. 
Freezes 4 to 6 times faster than 
dedicated freezers. 

Menu driven: 

Freezer options include 

full page printing 

fore- and background colour changes 

reverse printing 

jumps to monitor or reset 

Training mode 

kills sprite collision detection. 



1 2 Months repla- 
cement guarantee 



U.K. ORDERS Available by the wellknown 
Commodore Dealers or directly from 

H & P Computers 
9 Hornbeamwalk 

Witham Essex CM8 2 SZ England d. 
Telephone: 0376 - 51 14 71. 



copyright and reentered trademark H&P compuieri 

Wolphaerisbochl 236 3083 MV Rotterdam r»elherlar»ds Tel 01031 • 10231982 Tele. 26401 a ml. nl 



Review 



Stuart Cooke takes a look at 



NO MATTER WHAT YOU ARE DOING 
with your computer there will be a time 
when you will need to get some sort of 
printout. If you are writing your own 
programs then you will need to get a 
printout so that you can check it through 
carefully as you develop it. If on the 
other hand you are copying a listing, 
such as one from Your Commodore, 
then errors are bound to creep in and it 
is much easier to check the magazine 
listing against a printout than it is against 
your TV set. 

However, there is one small 
problem, cost. Nearly all printers are 
well over the £100 mark, in fact it is very 
difficult to find a printer that is under 
£200. Well don't worry. Spectrum, a 
company that has a retailer in just about 
every high street, is importing a printer 
that is set to change this. 

The printer that Spectrum is selling is 
manufactured in Japan by Citizen. It is 
designed to be completely compatible 
with the Commodore range of home 
computers. So much so that they have 
even made the case a similar colour to 
that of the C64. The price of this printer 
is just £49.99. 

Obviously there are bound to be 
some corners cut with a price like this. 
Well there are. For a start the printer will 
only use roll paper that is 80mm in width. 
This is very easy to obtain as it is the size 
of paper used by many desk top 
calculators. Secondly the printer will 
only print a maximum of 40 characters 
per line. An example printout is 
included (full size) with this article so 
that you can judge for yourself the actual 
quality of the print. My feeling is that the 
manufacturers claim that the printer 
'Expands your Commodore into a word 
and data processing system' is a little 
wide of the mark. I couldn't see myself 
sending business letters out on paper 
that is only 2\ a inches wide. Even so it 
does work well and if you don't already 
own a printer then it is well worth 
looking at. In fact a second printer of this 
quality is quite often useful to have 
around for producing quick directory 
listings etc. 

Even though the printer does have a 
few 'faults' it has a surprising number of 
points in its favour. The printer measures 
only 240mm by 176mm. This means that 
it takes up very little room, in fact the 
review model is sat on top of my 
monitor. 

Even though it is small and cheap it 
also has a large number of commands 
available. All Commodore graphic 
characters can be printed so there are no 
problems reading listings. Some printers 
totally ignore the Commodore graphic 
codes. It is possible to print out listings in 
lower case mode as well as in graphics 
mode. It is also possible to produce user 
defined graphics on the printer. 








THIS IS A TEST PRINT TO SHOW THE MUff 






OF THE PRINTOUT OF THE £49.99 CITIZEN 






PRINTER 






6 1 2345fc7390*CDEF8H I JKL!lHt3PQ*?STIA'WXV7 






IT CAN DO ftLL OF T* COMMODORE OflPHICS 






ItM/W-l.flii f a SEE!! 






r"L IU .— - iipr r-, nn t lit t kii^: 

fcNHHNLtU pKINI 1 Mb 






IT IS EUEH POSSIBLE TO ill &;■:«**:>:**.? 






find w wjsx not fbrvel totwrcase 






HOT BflD PT ALL FOR Tr€ PRICE !! 






** C001 *» 






1 < >»,-./% 23456739: 1 <=>?Sfl6CC€F6 






HIJI0JWIIST0WKVa£3t* la~J * bfH-ih- 






rvit i r"-_i % \ rv-ii k ■ 






LVTTMl /WWIU1**f*ijM«0Mrst 






wuxyzE 1 <>*+»- .'3123456789! ;<=>?« 






^:DEF*!JKLWQRSTL^WZ£tjT* laj 1 ■ 






rihih-rMii ru« B t*wii rv-ii— 











Enhanced printing is also catered for 
and one unusual feature is the fact that 
the ribbon is both black and red. Unfor- 
tunately you can only use one colour per 
line. Even so this is extremely useful for 
highlighting text. 

Even though quite a bit of 
compatability is there, there are many 
programs that will not work correctly 
with this printer. You should beOK with 
a program that simply produces listings 
but if any graphics are printed you may 
get into problems. This is because most 
programs that print graphics or perform 
screen dumps assume a printer width of 
80 characters. 



Even so it is very difficult to complain 
at a printer that offers quite a large 
amount of compatibility with your 
Commodore computer at a very low 
price. 

If you could with a printer but until 
now thought that the price was putting 
you off, take a look at this one. 



Touchline 

Citizen two-colour printer 





CentreSoft 



PRESENT 



With over four years experience ol providing practical software solutions for business and home applications. Gemmi ha ve put together a 
selected range ot famous titles for the Commodore 64 and 128in TWO special packs, at VERY SPECIAL prices. These super value packs 
contain all the serious application software you re ever likely to need for your CBM. from word processing and database management to 
a complete professional business accounting system. Gemini's OFFICE MATE' and OFFICE MASTER ' are here now - 
pul that computer to work! 




Word Processor 

A tufy -featured word processor program with text (emailing - 
nght jusTi'cabon • adjustable page length • text centenng • 
output of all or pan ot leit to prmier * selective saving * We 
concatenation - Hock move • Mock delete - reverse print • 
grapnesprrt ■ double width pnnt - sorting • left and nght 
margin selectable ■ word count • search and replace 



Database 

Superior hie management system wflh features found only 
wrth packages costing much, much more Completely user 
definable data entry formal - colours de*rnabkt - advanced 
mathemabes using built - n machine code expression 
evaluaur • fast sort on numenc and strmg fields - extensive 
searching with wild card' capattty ■ user -definable data 
summaries ■ simple on-screen editing A really POWERFUL 
database' 



Mailing List * 

This program will enable you to keep a record ol names and 
addresses and men pnni examine, son and find them all with 
soeoal selection techntoues Featirnng the larnous Gemini 

search • key' system, you have the option o* Dealing your own 
dedicated corjrng routines >or each name on Ihe 'lie 
For example, on most mail systems you are or", given the 
standard hearings such as name, street, town, county, etc 
but with our system, you could for example find all companies 
listed that have a turnover <n excess of a certain 'igure. or all 
subscribers *ho are behind with the* subscriptions . or a* 
people «gc*e ,01 a Christmas card thts year 1 A lull range of 
utilities is callable from the menu mdudmg. otcourse. label 
prinlmg 



Home Accounts 

Designed as a complete home accounting package, this 
program alows the user to set up and maintain a budget lor 
items o' household expendture and compare actual won 
budge! .eflher numerically, or w*h the aid ol chad graphics 
A complete bank account routine is ncluded. together wrth 
standard enpenditure categories wn«ch may be cnanged B 
suit 



• Word Processor • Home Accounts 

• Database • Extensive 

• Mailing List Documentation 



OFFICE MATE £12 Cassette 
or 1341 Disk £15 



Step up to OFFICE MATE and save money! Usual price individually £79 80 



• Database 
• Cash Book 



• Mailist • Word Processor • Stock Control 
• Final Accounts • VAT File • Full Documentation 



Database. Mailist and Word Processor as Office Mate ' PLUS: 
Cash Book / Final Accounts / VAT File. 

Gemini s legendary cash book system lor the CBM is a complete stand-alone accounting 
software package, already in extensive use by both accountants and their clients. 




General System Overview 

The Germ cash book package lor the Commodore 64. 1 ?b 
ir»orocomputer 4 rJesajned for a hardware system 
consisting of 

f. CorrvTtodore 64 1 1?8 microcomputer 

3 BO column printer 

3 Cassette or disk data storage 

Please note that nmnng the program on d-sk ww not change 
the way that the program works, but you will have the benefit 
ol tar greater speed and reiiafxlrty for the oadmg and saving of 
files that a disk system provides 

There Is a total ol 199 nominal accounts, a large number of 
when may be defined by the user You may have up to four 
cash control accounts, six bank control accounts one sates 
ledger and one purchase ledger control account 
The program will store a data Ate consisting of 



The account Mies 

The current cumulative balance on each account 
(debrl or credit) 

The net movement on each account tor every month ol 
the year 



4 VAT net sales and net payments hgures. wftch are 

automatically created and maintained by the program 
This same data Me n used by the FINAL ACCOUNTS 
program The VATFILE whx^accomparves this package is 
designed primarily for those users on the Relators speoai 
VAT schemes 

The mam features o< the CASH BOOK program are as follows 
i Double entry routines 'or transacMra ttveugh the 
cash bank accounts and sales. 1 purchase ledger control 

■coounti 

* 

? Journal tadfcykx Ihe evtial set up ot accour*s. or to* 

adjustments to any of the accounts 
3 The facility to produce me toUowmg screened or pnnted 

reports 

(a) Listing ol an the nominal account tides 
lb) Monthly transaction summaries 

(c) A kiat balance whenever required 

(d) Screen VAT memo account balances (sales net 
purchases, and VAT accounts). 

te) A batch printing facility wheh provides details ot ai the 
transactors entered m the current run ot the program 



4 The facility to extract regular management mtormation 
such as cash ban* balances, debtors and oedrtors, i 
overheads. e»c 

5 The program interfaces wrth the Gemmi FINAL • 
ACCOUNTS prog/am to ename Trading and Pro* it and 
Loss accounts and Balance Sheet to be produced 
whenever required Comparative o* budget figures can be 
shown arongsxM the actual 'tgures using rh>s program 

6 Screen prompts throughout the program to facilitate ease 
of use 

1 Storage of VAT ntormation to assrst m the preparation of 

penotK VAT returns 
9 Error trapping roubnes to minimise input errors 
9 The faofcty lo handle the rmanoai transactions of sole 

traders, partnerships, limited companies, ckjbs. esc 
Users registered tor VAT are reminded thai it is a statutory 
reowremenl lo *iform the* local VAT office wrw they change 
their accounting records on lo a new compulensed accounting 
system 



OFFICE 
MASTER 

£25 
Cassette 
or 1541 Disk 



Dealers please note that Office Mate' and Office Master' 
now available also on BBC. Electron, and Spectrum. 



MAIL 

ORDER 

TO: 



Sole distributors to the trade: 

Centre5oft Ltd. Tel. 021-359-3020 



Gomnj 



I '!. . ,-■ ft ..- 



P*aw sryyl rno. 



Gemirv. Marketing Limited. Gert«nt House ' 
Dinan Way Trading Estate Exmouth. EXB 4RS j 

CBM 64 >' 128 1 ■ eMate packs'" C1?(Disk £15) ,| 



CBM 64 128 Ottice Master packs i" E25 



Cassrjne I Disk (please delete as necessary! 



I 



deque P O s enclosed to value C . 

or please doM my 

Access Ame« Mo 



I 

I Trade and overseas enquiries welcome 1 



Signal u*rj 



24 HOUR CREDIT CARD 

HOT LINE 
(0395) 265165 (4 lines) 




jayne Goin spends some 



time on the fairway and 



finds it great fun. 



TIGRESS MARKETING ARE VERY PROUD 
of the latest addition to their ventures. 
Released through Ariolasoft, the Col* 
Construction Set should prove to be the 
ultimate in computer golf simulation 
until laser disk games appear. 

Whether you're a golfing pro or a 
rank amateur, this package has every- 
thing to recommend it. A full bag of 
clubs selected by yourself, a range of 
skills and techniques plus several world 
famous courses to play on. 

Wentworth, Sunningdale, the Belfry 
and St Georges are all supplied initially 
and Ariolasoft promise more courses to 
follow in the future. The construction kit 
is so detailed (hat it is possible to 
recreate the special features of each 
course from the claustrophobic wooded 
appearance of Sunningdale to the 
numerous water hazards of the wet-look 
Belfry. 

Golfing competitions take two 
forms: Match Play and Competition. 

Competition is the familiar game 
where the player who holes out on the 
eighteenth green in the fewest number 
of strokes is the winner. In this 
simulation up to four players can 
compete. 

Match Play is a two player game and 
each hole is either won, lost of halved. 
This means that the winner is the first 
person to win 10 holes and the re- 
maining holes are left unplayed. 
Normally, a drawn match is played on 
from the first tee until a two hole lead is 
established by one of the players but this 
is not possible in this simulation so a 
drawn match can occur. 

As each new hole is played it is 
loaded from tape to disk. Fortunately 
this can be described as the normal 
delay caused by the players walking 
from green to tee. As the game starts this 
is hinted at by the legend 'Walking to the 
first tee' emblazoned across the screen 
as the rest of the game loads after the 
initial option screens. 

A full complement of clubs cannot 
be carried so three must be selected for 
omission at the start of the game. Playing 
a shot involves several further decisions. 
The screen design is there to assist your 
judgement. The top left quadrant of the 
screen shows the view towards the tee in 
3D. Under this is a panel which gives all 
the vital statistics of the hole and the 
weather and turf conditions. The right 
half of the screen shows the plan view of 
the hole. 

Weather and turf conditions affect 
the length of shot which can be played. 
Wind direction dictates a particular 
extra force on the ball, warm air slows 







the ball less than cold air, rain has a 
similar effect and the dryness of the turf 
affects bounce and distance. 

Taking all of these factors into con- 
sideration your club is chosen and the 
direction of the shot is determined by 
moving a cross in the direction of play. 
At this point the extremely clever nature 
of the 3D display becomes obvious. Each 
time you reposition the cross the view is 
redrawn. In this way a very realistic view 
is created. 

Next the amount of loft and fade is 
selected. Loft determines whether the 
ball will fly high or skim across the grass. 
Fade causes the ball's trajectory to bend 
in a deliberate way unlike slicing or 
hooking which are caused by incorrect 
handling of the club. 

The final decision is the actual stroke. 
A small golfer appears at the bottom of 
the now cleared text screen and 
proceeds to take swings at the ball. 
Pressing the fire button ono the 
backswing causes the golfer to hit the 
ball from his current position. The 
higher his backswing the harder the ball 
is hit. 

If the ball lands in an unplayable 
position you have the option at the start 
of each stroke selection sequence to 




move back to your ball's previous 
position, end the game or proceed 
immediately to the next hole. 

On reaching a distance within a few 
yards of the flag, the 3D screen gives way 
to a large scale plan view of the green 
showing the vertical and horizontal 
components of the slope of the ground. 
Allowing for the roll which this slope will 
cause, you place your targeting cross 
and swing. If you manage to hole out 
before reaching this plan view you are 
treated to a slow-motion, action replay 
of your shot. 

As in the real game each player has a 
handicap. Starting as a novice your 
handicap is 28 and you must prove your 
worth as your play each round. The 
handicap is designed to smooth out the 
differences between professionals and 
amateurs. At the end of a Competition 
game, your handicap is subtracted from 
the total number of strokes taken and 
this gives your final score. If this value 
minus the total par for the course is less 
than your handicap value, a new grading 
is generated and this lower handicap can 
be saved to tape or disk. 

In Match Play each hole is allotted 
difficulty level in comparison with the 
other holes. This meansthat each course 







has a fully nominated scale of one to 18, 
each hole having a unique value. This is 
taken into account in conjunction with 
your handicap when deciding which 
player has won. 

The construction section is very easy 
to use if the correct procedure is 
followed. After choosing the par value 
for the hole, the tee and flag are placed 
using a joystick and a screen readout of 
the distance between them. 

Next the boundary line is drawn and 
then the elements of the course can be 
added. The choice is made via two icon 
menus, one for the size of object and the 
other for the type. The types available 
are water, bunker, green, fairway, 
rough, woodland or scrub. The size 
gauges are roughly circular but range 
from about four characters in area to 
almost pixel size so most shapes can be 
created. 

After entering the relative slope on 
the course and the stroke index, the 
hole is complete. 

I loved this game and I know that the 
Chairman and the Pro at Wentworth feel 
the same way about it. If this is still not 
recommendation enough then just try 
the game, few will be able to resist its 
immense appeal. 




• CBM 64 AND 128 • TRANSFER ALL MAJOR TURBOS • AUTOMATIC • NO USER KNOWLEDGE # 



COMPARE THE REST WITH THE BEST 
NOW DOSOFT OFFERS YOU EVEN MORE! 




MegaTransfer 
DiskV.4.0 



Before you whu h tape to -disk utility 

id buy. consider if H give* you 
• Full conversion* <>1 Multistage 
Program* to load from Disk • Fifteen lop 
titles including the latest spons. flight in J 
tight »ini . i .i No more tape winding' 
No other utility of any description tan offct 
this • General purpose tra otter 
routine* for the makir turboload 
system* Nova, Burner, Vlslload, Huh 
and Pav (including t he ivrytatttl Pavloadcr 

u*ed on current chart toppers) and more 
These routine* will transfer programs which 
won't normally load with the Disk Drive 
present. • A huge collection of specific 
routlne* fut individually protected 
programs, all accessed via an easy Menu 
System • A program identifier, and ihc 
classlcDIakua 1.2 -infer your vintage 
slow load collect ion 

MegaTransfer V.4.O. is economical 
ot Disk Space, transfcrringittily the actual 
program material Transferred pn>gram* will 
reload at over lour times the normal rate 
with the incorporated Disk Turboloader. 
w hich also allows your srfiriru; disk 
programs to be fastloadcil from disk 

MegaTransfer V.4.0 is t'Otily extended 
from previous edit Hint Despite claims to 
the contrary. M will transfer programs 
which no other utility will handle. 
Beware of similar sounding utilities, 
which consul almost entirely of disguised 
wrsmeitut our old material If you want to 
he up to date, you need MegaTransfer. the 
real 'Turbo Smasher'. 
At press lime, all ad»emsec 

Turfto tn Disk soft 




£17 



MegaUtility 
DiskV.4.0 



WITH TEN 
FREE DISKS 



• NEW Alphaload disk TurboLoader for 

games etc Add this five block program to 
each disk ind your program* will load at 
over four times the normal rate No menu b 
rruu ired and you d on I fuse to had 
Alphaload separately Muc h Improved over 
previous versions • r*rogrammer*s 
TurboDbk Utility. Fast load. save, and 
verify wtirk* with all device numbers 
Displays program sun and end addre««e » 
Includes easy DOS command* Compatible 
nithmosi expanse" - •Whole 

Disk Copter hacks up an entire disk in 
under three minutes. • Turbo Hie Copy 
selected files from Disk m Disk Beads and 
write* at five time* normal speed. 

• Nibble Disk Copy hacks up most 
protected disks tn msl five minutes. Be ad* 
and writes all cintn automatically • Fast 
Formal. Format your disks in a fraction of 
■he normal time '• Disk to Tap* Plu*. 
Transfer a w Ide variety of single and 
multipart disk programs to tape with 
visible scrccnAiripc border turboload 
Include* professional mastering scheduler 
An interesting program (not for protected 
disks} • MegallllityDUk i* supplied 
complete with 10 FREE JM Blank Disks 

( w it h plastic box . a* 
specified in this ad i 




MegaTape 
Super Value 




• Our famous tape utility for One 
Datassette (or equivalent) No additional 
hardware Is required. MegaTape 
• T*pe-»o-- 



»-Tape transfer 

i A vast collection for the major 
turboload games • Simple to operate, 
MegaTape handles a vast range 
of different fast load system*, and even 
incream loading speed In many cases 
• Features our Vlsl-Screen, Stripe 
Turboloader • The most powerful 
Tape-in-Tapesoftwanreverdeviscd • RBS 
P!u* ( hir classic turbo conversion utility 
sites a new lease of life to your vintage 
skiwload tape collection Converted 
programs load independently ai SEVEN 
time* the normal rate. f% *-*» £ (\ 
with Vlsl-Screen M ripe A- J 
Inrhnlmd \ • I U I | - BaU M 



Id HHS and Fasti 



saws 



£17 



AND *sirr- T 

SAVE 

MONEY JlY 



• Buy MegaTransfer and MegaUtility 

ti wet her (price £34. 00 in lading 10 FREE 
Disk* (A Boa) and receive MegaTape (on 
disk) and our praised sprite lihraryeditor 
(Pro-Spritei al FREE) 

• Purchasers will receive detaih of future 
update* and can buy new DoSofl Programs 
a advanugcous price* 

Existing customer*: send any OoSidl 



3 M Disks at 
Low, Low Prices 



Why boy unlabcllcd. unlsranded disks of 
uncertain ongin and specific*! km > 
• We offer topcla**.*M Disk* heiringthc 
manufacturer * label, at an un precede ntcdly 
low, low price • Spec i fieat ton S5/DD 
7MD-0. suitable for all S w * drives • 
Complete with labels, w rite protect labs. 
IV sac spun acrylic sleeve* and a FREE 
Flip/File High Impact Plastic Storage 
Box worth £2 .7) Our Inclusive Price is 

.--i 1W .s<> per r*.\ ill ten. 

No extras No catches ^^^O 
This Is the price you nay. I f 
I K POST FREE. CVJLM 



We take a 
bite out of 
Disk Prices! 

How to get your DoSoftware 

Please scndcash'chcquc'PO wilhorder 
for fast despatch (SAE only for full details) 
Send off now to 

DoSoft (Dcpt YC(, 2 Oak moor Ave. 
Blackpool, FY 2 OEE 

I K Postage included Europe add W) TS.or 
£2 if order includes Blank Disks Overseas 
add £1 SO for Airmail, or »,V SO if order 
includes Blank Disks 

DoSoft 

You'll Do it Better 
with DoSoft 



FAST DISK UTILITIES • IOADERS • .VMIN DISK COPY • FAST DISK FILE COPY • FAST FORMAT 



OUICUCJISC+ 



hav« 
merrw 

mm v*lt 

or eaBBjW' ■" ™ 
t 




THE 



DISC DISECTOn 
V4.0 




iao>- 
een 



"-TEE"**- p™»" M 




iottwaiel 
Very FHt 




Ic* selective 
MinH speed No * 

........ 

-2" «•»■ "-» 

■MM 

p,tncer to"* 



mo* the fourth qeneraClon of CM country S leading *« °« 

SLSmE M minute?. Handles the latest types of disc 
P' 01 „„,.,-iw automatically. Atthe lime of oping to 

protection •>«P aa >S*"S J M .vdlK I H—M W l 

P.«ir» and bM«i. 



.„(!„ including, In* ieie*> — — 

wVre/m rvrn copies 1 28 term* or <HWi m CPW rrvx* 



Ctntronl" 
(use* portl with 





64 "^.MV MORE "StFUl 
PUIS ""SfvJ Ti*K« VOUR 

ONLY £19.95 



mnwi ^^^^""^ ^5 

averTfarter bartups. incorporates devxe number change 

^«iad«fout<n«wlfansl« iwnme«G*m«ll *>d Beacn 
Head It" iodise _ _ 
-DISCO- win t-am/e- standard speed load software to drsc 
"trans OB- «M you mm a law **> ^ J«" ^ 

-DOUBLI BACK UP" B ■ very fait rwO dnve back up 

sss. ,;r,.;rsjr;«rrai fits: a- «■ 

ONLY £29.95 
.. ..niT ••ntoot «~y ' k " >9 

p ,vm.n« Of C9 .95 to ••<•*-• V4.0 

lm , .,.CBM ( H and 1570.71 compatible In 64 mod.. 




THE NEW GENERATION OF 
BACKUP METHODS 
1$ NOW EVEN BETTER 



THE LAST WORD IN BACKUP TECHNOLOGY 

thousands of latlif i.d cimomtn jre using [hem 



version o< .he product lhai incorporates a frw useful improved PLUS 

!*" ,n ? ,,nd °~ »"»9'«. memory re.ld.nt. mS 

that Freeze Frame could not handle. (This irxtude. Ail 
iorrw*e up io 4ih May 1 986) " WWM 

OPERATING FREEZE FRAME" 

plugged into the cartridge port When me c ompute, rs switched on a me7 
sage k displayed, presanc, ■ retubn w-l clear the computer hack to the 
22 «*« Softwa'* can nowoe loaded from tape o. *sc com 

plet.ly .i normal. The latest vervon o» -Freeze Frame wtfl to the oesi 
ol our knowledge, allow ANY software to Wad arvj run no,mat ly fuS 
tompetltrve prod ix Is) ' ,unw,p 

■■Freeze Frame - can be Drought nto operation at any convenient point o v 
pressing, he Demon on r, Vou can then do one of three tr,ngs ^ ™ 

' m^,o D e ft""rrj. V r 0,h '7 V *"'°" °' ' h « In 
spiTd reload venlon will Include a high 

Si?? $ Wl " "° th * Mm- ■» D •"•P« lhat the reload 
will be at itandard 1 541 load ip«*d. (Alw tultable for U % 

Z ,1 S! ^ T WO '*" ,>9 w- " ton °' ** P'«»9«ni in 
memory to tape. Thl. Incorporate, a high »pe*d reload at 



Alt, 



THAT IS mi 

' M WO HTTH -PBHZF PffAM £ CA/V 
) INDCPCNDANTl Y OF THE UTILITY 



Hcruori 



Commodore 
MUST eX 
OWNER • ,„ 

NOW EVEN FASTER 



ooo- 1 "' 



ODDS AND ENDS 

STAR NLIOC ir* oew Commod3fe ieady pmter. many 
tran»n in<lxl"»j 1 20u» «sri mo*. 2 ?<pi near krw quaKy. 
ir jcior jnd •■KiKm WO *wn semi — B—dC sngk- tf*ei te«i 
most luncwB fror* p*o« iwtttr. vWctaUe Our pemaps most 
^pcrr^if, ihr Interface cartrldoe It replaceable. So* 
you c-wv io -xrtner ™ k < «• 'orwwer »*J*ftKjfJ? 
4 new imerlare lo sue °"IY 00 

OtSC raOTCMBI *lkw you to r*s*y cut a second write pro 
tea notth r. your d«» so lhai you «n use b««HAvq 
wsetmawget ONlYta.fS 
AZIMATI MOO lets you reM^n trie hr*d of your OJU 
,^ieOuKkly*»iea«iy SuppHed w<n IMMM 

only <a.« 

mat gHim the oest O-amy drscs. avaiaWe Iromus-me 
owe of cheap ones Buy the best they last - IHetime flo.es of 
ten — 

SINGLE SIDE DOUBIE DENSITY ft » »S 

DOUBLE SIOE.DOUBieO(NilTY tU.« 

OR PACKED IN A PLASTIC UBRARY CASE 
SINGLE SI Or DOUBIE DCNSITY CI2.»5 

DOUBLE SIDB.'DOUBLE DENSITY' C 1 4.95 

COMMODORE COMPATIBLE OATA IttCORDEIT 

MM the same ope»aoons as me C2N or I S3 1 Out aja«U 
uv™ Abo rtiudes * pause burton |rf ta use with C 1 6.*aus- 
psrasesiatel ONLY Ut.fS 



TheiaptbMup-eertce- 

DcuBln W brtn *> enorraow M ceu 

aro (oobrurs ki sen wy *w Wy> 
BrtAjw II is Dv ben product of Its type 
onmr-urvn Dcut^usniirw'WCWJ 
tha (oor- all lypti ol lofreart r^ L - 
kwcf sored .t icrsisa ol hardware and 
•ortware f he tofhvae 5 the Key Dai as 
fear nner proaum of as type Dace* 
ciMtsa brand new Mia) copy Kn 
very easy w me *« «er. suHessW m Un 
a# test have proved ■)■ ma arvcr ' 

'■ v.r-.-IJOHwn,,, 

"fwrei access lorwoorw Tcordfrs 

ONLY 112.95 
Whyienielorleu-rNsli the ben. 



we Arre conudcnt imai —tnt 

'"**" « »>*• MOST eOWF RFUL 

and rUBJeU BACHue trsriH in 
the woeio. 

Do»f any MllevrNNyoAprM MA ' 

TAeiroouc oncTOTAee 
ontToonc otscTOTAee 
PUIS mr Mom k| BMey aj Bdaj eM » 
v** h my iijot aw mum to Dui rov 
no". t*«i* r*°9" | "> eaBM *o» — 

00»« nM rnr tutum q prrw) 

*"*-r«BB«ng«creu.a* 

OaBSBBB program Dy punr.j 1 KWi 

1™ r-vani Wei rt> tna thr- «r 

**MAier>0w 

mm fwami mas vj anous 
couerr/riov 



cowcrmvi eeooucTs 

A ...... sufi^rn 

■ 1, , 

no rictprm 'erltruif, fo us but 

P«t<a« no, tar n* Iw 

tk« rtfui raM l#aa 1 « 1 000a produn 

""-'K-'l IUt«fn^<miloni». 
l'-> t*.', T 1 1 . 
• ; - r- nufin 

"Ol BBdi (»» Cy aVrrtrHnrj n true uwd 
pr^o-*-. OMV h* nw^a wrth 

the ce n rldo» ■» >N<i 

tject' i« 11 eaBu to oium in~ 
<««o« bo ijOhi Mrtouiry m «m 

pee— i»a Rj*" R— 
action aeetAsr »«, m upr im 

pub aunmiM mr axr «omray 10 
mer dBHBJ m Mm round nuny prwara 
' ■ - ' ■ ■ .1- 



ONLYE39.95 

Ownen of earlier v.rUom can return them and upgrade lor C 1 4.95 

SIBIOUSW-aNlNC. 'KlsnAN(»lKM| l .ro*IWuireODUCIAND 

rist"icri»roen«soNAiust cx>. tcdmca*? iiwiihwoiiii 
«*»uc:i Non«HC,( t w criin i,-, ro*t»o. ............ 



DOLPHIN DOS THED.FFER E NCEIs5WGCary ? 



Ukc evefyone that has had the pleasure of seeing this system in 
operation you will be amazed by both the speed and ease of 
use. It is compatible with the majority of commercial software, 
speeding up both the program loading and SEO'REL files. 
Fitlrnq requires the insertion of two sub assembly boards, one 
In the 1541 and one in the '64/* 128. This does not normally 
entail soldering, although a small amount will be necessary 
with some machines. 



ONLY £69.95 

If you require further irVormatlon please send SAE for fact sheet 
Operates with the CBM 64 or 128 In 64 mod* with 1541 disc drive. 



THE FEATURES 

25x FASTER LOADING |PROGRAM FILESI 
1 2x FASTER SAVING | PROG RAM FILES) 
lOx FASTER LOADING (SEQUENTIAL FILES) 
8x FASTER SAVING (SEQUENTIAL FILES) 
3x FASTER LOAD AND SAVE 'RELATIVE! 
[These figures do not allow for searching) 
Easy DOS commands from function keys. 
Fast formats 40 tracks giving 749 blocks free 
Centronics driver software inbuilt 

Machine code monitor 
Can be switched out if necessary 



SUBJECT TO AVAILABILITY. ALL ORDERS DESPATCHED THE WORKING DAY AFTER RECEIPT 



All prices Include P&P and VAT. Send cheque. Postal 
Order or Credit Card No. Credit Card orders accepted 
by phone. Callers welcome. Wide range of goods 
stocked. Trade enquiries welcome. European orders 
send price as advertised. Outside Europe £2.00 for 
airmail. Mall order to Evesham please. 



EVESHAM MICROS 

BRIDGE STREET, EVESHAM, 
WORCS. Wnil 4RY. 

Tel: 0386 41989 



MICRO CENTRE 

1756 PERSHORE ROAD, 
COTTERIDGE, BIRMINGHAM. 

Tel: 021-458 4564 



,n Australia contact: MICRO ACCESSORIES of SJK.. 39b Anderson Walk. Smithfield. South Australia 5.14. Tel: (08) 254 6284 




2 PRINT"[ CLEAR]": POKE 53280,0 

:POKE 53281 ,0 
4 IF PEEKC49152 30169 AND PEEK C 49 1 53 3 

<>8 THEN LOAD'H/CODE" .8,1 
6 CLR:Z=4 

8 DATA "DEL " . "SEQ ","PRG 'V'USR 

"BEL " ,"DEL<" ,"SEQ<" ,"PRG<" ,"USR<" , 
"REL <" 

FOR J=0 TO 9: READ TiCJ3:NEXT 
:GOTO 122 

OPEN 15,8,15,* 10": INPUT* 15 ,A ,B* 
: CLOSE 15 

IF AO0 THEN PRINT"C CLEAR, D0UN3 , 
RIGHT, UHITE.SPC63DISK ERROR 
:•';"[ C73"! A;B*:FOR 1=2 TO 2500:NEXT 
: RETURN 
OPEN 4.Z 

ji= i *":Ni=""!L4=" ":G*='[SPC42 3" 
IF R=l THEN Li = G4 
OPEN 1 .8,3, "W 

FOR J=l TO .142: GETtfl .Ai: NEXT J 
FOR J=l TO 16: GET** 1 ,Ai 
:IF A*=CHR4C 160 3GOTO 30 
N4=N*+A* 

NEXT J:GET*1 .Ai.Ai 
FOR J=l TO 2: GETttl .A* 
:IF Ai=CHR4C160 3GOTO 36 
I4=I4+A4 
NEXT J 

FOR J=l TO 92: GET«1 ,A$: NEXT J 
PRINTM ,L%i "C CYAN] " I " DISK NAhE 
: ";n$; ": ID Ii; " 2A" 
IF F=0 THEN PRINTtt4,L4;"CC33"; - 
TK: SE:FIL.: BLK: PROGRANL SPC3 3NANE 
:S/AD" 

IF F=l THEN PRINTP4.L4-; - [riAGENTA3"; 
" FILE: BLK: PROGRAMT SPC33NAf*lE : S/AD 
:E/AD" 

f1=f1+i:GETttl ,K4,T4,S4 
:IF S4=""THEN Si=CHR4C03 
F*="":FOR J=l TO 16:GET»1,A4 
:IF A*=CHR*C160 3GOTO 52 
F4=F4+A4 
NEXT J 

FOR J=l TO 10: GETttl ,A4: NEXT J 
L=0:IF At<>" "THEN L=ASCCA43 
GET*1,A4:IF f1<8 THEN GETttl, At, A4 
:GOTO 62 
M=0 

SU=ST: IF K$=""GOTO 110 
K=ASCCK4 3-128: IF K>4 THEN K=K-53 
IF K<1 THEN K=0 
FL=1S IF K=2 OR K=? THEN FL=0 
IF F=l THEN GOTO 78 
H4=t1ID4CSTR4tASCCT4 3 3,23 
:PRINTtt4,L4; "[ CI ] " ; LEFT4CG4 , 
3-LENCH433!H4; 
H4=f1ID4CSTR4CASCCS4 33,2 J . 
: PRINT*4 ,"C WHITE3 "» LEFT* CG4 , 
3-LENCH433;Hs; " ; 
76 IF F=0 THEN: PRINT«4 , "f HAGENTA3 " ; 



0 



14 



16 
18 
20 
22 
24 
26 



30 
32 

34 
36 
38 
40 

42 



44 



48 



52 
54 
56 
58 

60 
62 
64 
66 
68 
70 
72 



74 




Get more details from your 



disks with this routine from 







DISK DIRECTORIES ON A C64 CAN 
only be described as a pain. Unless you 
have a utility program that will display a 
directory on your screen the only wayof 
finding what is on your disk is by loading 
the directory into the computer. 
Obviously this erases the program that 
was already in there. Hence the need for 
a program such as this. 

The machine code section of this 
program (DIRECT.CODE) consists of 
three small routines. 

From C000 to C0A9 is a routine that 
wrll display the directory. Once 
DIRECT.CODE is stored in your C64 then 
the command SYS 49152 will display the 
directory of any disk to the screen. 
Leaving your program intact. 

At COAA to COEO is a routine that is 
used for finding the end address of a 
program. At C0E1 to C0F9 is a small 
relocatable routine that produces a 
striped border effect. 

Detailed Dir is a program that was 
written around these three routines to 
provide a very useful disk utility. 

Firstly you can get a listing of any disk 
on either the screen or printer. If you are 
using the printer then you have the 
option of printing on the right hand side 
of the paper. As you are no doubt aware 
directories only fill up half the width of a 
standard piece of paper. With this 
program you can feed the paper back 
into the printer and use the other half. 

Secondly the program can also give 
the following information: 
Disk Header. 

Track No and Sector No where program 
is stored. 

Number of blocks a program uses. 
Program name. 
Program start address. 
Program end address+1. 

If you wish to use any of the machine 
code routines in your own programs 
then careful study of Detailed Dir 
should show you how to use them. 

Getting It In 

Detailed Dir is a Basic program so you 
should have no problems typing it in. 

DIRECT.CODE is a Basic loader for 
the machine code. Type this in as a 
normal program and SAVE it in case you 
should have made any errors. 

Now RUN DIRECT.CODE and if all is 
well you should be asked to 'PRESS 



T4CK 3; 

78 IF F = l THEN PRINT*4 ,L4; "C MAGENTA J " ! 

LEFT4(G4 , i 3;T4CK3; 

80 IF F=0 THEN H4 =MID4 C STR4 CL 3 ,2 3 
: PRINT*4 , "[ GREEN] " ; LEFT4CG4 , 

3- LENCH4 3 3; H4; " "; 

82 IF F=l THEN H4=MID4CSTRiCL 3 ,2 3 
: PRINT«4 , "C GREEN] " ; LEFT4CG4 , 

4- LENCH433;H4; " "; 

84 PRINT*4 , " C C7 3 " ! F4; LEFT4 C G4 , 

17-LENCF4 33! "E YELLOW ] " ; 
86 IF K=0 GOTO 108 

88 IF K=2 OR K=7 OR F = l THEN OPEN 2,8, 

4,"0: "+F4+" , "+T4CK3+" ,R" 
90 A=0: IF FL=1 THEN 98 

92 GET**2 ,A4 ,B4: A=0: IF A4<>" "THEN A=AS 
CCA4 3 

94 B=0:IF BiO" "THEN B=ASCCB4 3 

96 GOSUB 114 

98 IF F=0 THEN 106 

100 POKE 785,170:POKE 786,192 

: A=A+USRC03 
102 IF FL=1 THEN PRINT*4 ,A; "BYTES" ; 

:GOTO 106 
104 PRINTM , ,- C C33"; " " ; : A*=A/256 

:A=A-Akx256:B=B+Ax: GOSUB 114 
106 CLOSE 2 
108 PRINT«4 

110 IF. SUI=0 GOTO 46 

112 CLOSE l: CLOSE 4: GOTO 120 

114 X=B/16:GOSUB 116:X=A/16 

116 FOR J=l TO 25 X*=X- X * CX-X* 3*1 6 

: IF X*>9 THEN X**Xjm£ 
118 PRINTw4.CHR4CX*+483; :NEXT J s RETURN 
120 RETURN 

122 PRINT "[ CLEAR] " ; S E4 = "C MAGENTA , 

RUSON ,SU ,RUSOFF] " : GOSUB 186 
124 PRINT "C HOME, D0WN3 ,RIGH-T2 , WHITE] 

THISC SPC .C7 3PROGRAMC SPC , WHITE J WILL 
ALLOW YOU TO[ SPC ,C73PRINT" 
126 PRINT"CDOWN,RIGHT4 , WHITE] 

YOUR DISK DIRECTORY TO THEC SPC ,C7J 

SCREENC WHITE3*' : PRINT"C DOWN ,RI GHT2 , 

C7J0R PRINTER." 
128 PRINT'C DOWN.RIGHT3,UHITE3YOU WILL 

ALSO HAUE A CHOICE OF THE" 
130 PRINT "[ DOWN, R I GHT3 FOLLOWING 

:-CC7]ENDC WHITE, SPC] 

OF PROGRAM ADDRESS , " 
132 PRINT , 'CDOWN,RIGHT6]PRINTCC7,SPC3 

LEFTC WHITE, SPC 30RC C7 ,SPC'3RIGHT 

C WHITE, SPCIOF PAPER," 
134 PR I NT "C DOWN,RIGHT3C73CHECKC SPC , 

WHITE3YOUR DISK BEFORE ^OU DUMP 
TO" 

136 PRINT"CDOUN,RIGHT3J 

SCREEN OR PRINTER WITHOUT LOOSING" 

138 PRINT TAdC 11 3"C DOWN 3 THIS PROGRAM . " 
: GOSUB 190 

140 E4 = "C GREEN , RUSON ,SU ,RUSOFF3 " 
: PRINT" [ CLEAR3"; : GOSUB 186 
: PR I NT " C HOME, D0UN2, WHITE, RIGHT, 
SPC6 3FUNCT I ONS AT YOUR DISPOSAL" 



142 PRINT "C UP, RED ,RIGHT ,SPC6 .CT273 " 
144 PRINT TABC 11 3"C C73 <<<C MAGENTA ,SPC3 

SCREEN DUMP[C7,SPC3>>>" 
146 PRINT TABC 13 3"C UP ,RIGHT2',RED ,CT1 1 J 

" : PRINT '[ DOWN , RIGHT .YELLOW ,SPC23 
CHECKC SPC .CYANJFOR CORRECT DISK" 
148 PRINT "CD0WN2, RIGHT , YELLOW .SPC2 ] 
PRINTCSPC ,CYAN3TO SCREENC WHITE3- 
CCYAN3END ADDRESS" 
150 PRINT "C DOWN, R I GHT , YEl ' Old .SPC23 

PRINTLSPC,CYAN3TO SCREENC WHITE3 + 

CCYANJEND ADDRESS" 
152 PRINT" CDOWN2, RIGHT , YELLOW ,SPC2 ] 

NEXT MENU — >>>":GOSUB 154:G0T0 166 
154 A 1 $ = " C HOME , D0UJN6 ]" : A24="L RI GHT3 1 3 " 

:A3i = "C C7,SU3 C SI ]" 

156 A44 = 'TUP]":A54 = "CSJ ,SC4,SK]" 

: AA4=A24+A34: AB4=A24+A54 
158 F14="CSB.WHITE,SPC]F1CC7,SPC,SB]" 

: F34 = "CS-, WHITE, SPC JF3CC7, SPC, S-3" 

:F54 = "C SB, WHITE, SPC 3F5C C7,SPC,SB3" 

:F74="CSB,WHITE,SPC]F7[ C7, SPC, SB J" 

: F8i = "C SB, WHITE, SPC 3F8C C7,SPC,SB3" 
160 PRINT A14+AA4:PRINT A24+A44+F 1 4 

:PRINT AB4: PRINT A44+AA4 

:PRINT A24+F34 
162 PRINT A4i+AB4:PRINT AA4 

:PRINT A24+A44+F54: PRINT AB4 

: PRINT A44+AA4:PRINT A24+F74 
164 PRINT A44tAB4: RETURN 
166 GET A4:IF A4 = "C F 1 ] "THEN PRINT" 

C CLEAR 3 " ; : GOSUB 186:G0T0 176 
168 IF A4="[ F3] "THEN PRINT"C CLEAR3 " 

:Z=3:G0SUB 254:GOSUB 190:GOTO 140 
170 IF A4="[ F5]'THEN PRINT"C CLEAR] " 

:Z=3:G0SUB 256:G0SUB 190:GOTO 140 
172 IF A4="CF73"THEN GOTO 200 
174 SYS 49377:G0T0 166:REM G0TO165 

:SYS49377 
176 OPEN 15,8»15,"I0": INPUT*15,A,B4 

: CLOSE 15 

178 IF AO0 THEN PRINT"C D0WN3 , RIGHT , 

WHITE, SPC63DISK ERROR 

: "I "C YELLOW] "; A; B4: FOR T=0 TO 2500 
,:NEXT:GOTO 140 
180 PRINT , 'CDOUN3,RIGHT3,C6,SPC23 USE 

SPACE BAR TO PAUSE LISTING" 
182 PRINT TABC83"CD0WN,RIGHT3,C3JANY. 
KEY TO RESUME.": FOR DE=1 TO 2000 

:NEXT:SYS 49152 
184 GOSUB 190:GOTO 140 
186 FOR X=l TO 39:PRINT E4;:NEXT 

:FOR X=l TO 23:PRINT E4;"CDOWN, 

LEFT]"; :NEXT 
188 FOR X = l TO 39:PRINT £4; "C LEFT2] " ; 

:NEXT:FOR X=l TO 23 

: PRINT E4; " C UP .LEFT ] " I : NEXT : RETURN 
190 PRINT"C HOME ,D0UN23 ,RIGHT7 , YELLOW] 

PRESS ANY KEY TO CONTINUE" 
192 FOR DE=1 TO 200:NEXT:SYS 49377 
194 PRINT "C UP, RIGHT7, RUSON, YELLOW] 

PRESS ANY KEY TO CONT INUEC RUSOFF ] " 

:FOR DE=1 TO 200: NEXT 



CG 



196 GET At: IF A4 = " "THEN 190 
198 RETURN 

200 E* = " C CYAN , RUSON , SU .RUSOFF ] " 
:PRINT"C CLEAR]"; : 60SUB 186 

202 PR1NT"[ HOME .DOWN2 .WHITE .RIGHT , 
SPC6 3 FUNCTIONS AT YOUR DISPOSAL " 

204 PRINT"[ UP, RED, RIGHT, SPC6,CT27J" 

206 PRINT TABC 10 ]"[ YELLOW] < <<C MAGENTA , 
SPC3PR INTER DUMPC YELLOW ,SPC] >>>" 

208 PRINT TABC J03"C RIGHT4 ,RED ,UP ,CT12] 

210 PR I NT" CDOUN. RIGHT .YELLOW, SPC2] 

PRINT I.EFTC SPC, CYAN, SPC] 

-END ADDRESS" 
212 PRINT"[ D0WN2 .RIGHT .YELLOW .SPC2] 

PRINT LEFTCSPC, WHITE, SPCJ+C CYAN] 

END ADDRESS" 
214 PR I NT "C DOWN, RIGHT , YELL OW ,SPC2] 

PRINT RIGHTC SPC .WHITEJ-C CYANIENP 
ADDRESS" 

216 PR INT "C DOWN?, RIGHT , YELLOW ,SPC2] 
PRINT RIGHTC SPC .WHITE] +[ CYAN] END 
ADDRESS" 

218 PR I NT "C DOWN .RIGHT .YELLOW ,SPC2] 

CHANGE DEUICE NUMBER NOWC WHITE .SPC , 

LEFT]";Z 
220 GOSUB 154: PRINT AAt 

:PRINT A2i+A4t+F8$: PRINT AB* 

:GOTO 222 
222 GET A*: IF A* = "C Fl ] "THEN R=0 

:G0SUB 254: GOTO 200 
224 IF Ai = " C F3] " THEN R=0:GOSUB 256 

:GOTO 200 
226 IF A4="CF5]'THEN R=l: GOSUB 254 

:GOTO 200 
228 IF A4 = "C F7] "THEN R=l: GOSUB 256 

:GOTO 200 

230 IF At = "C F8] "THEN PRINT"'C CLEAR] " I 

:GOSUB 186: GOTO 236 
232 IF A*=" "THEN 2 
234 GOSUB 248: GOTO 222 
236 PR I NT 'C HOME .D0WN3 .RIGHT2 .WHITE , 

SPC7] INPUT A UALUEt SPC, MAGENTA] £ 

CGREEN]0-255£ MAGENTA] 3" 
238 PRINT"C D0WN,RIGHT3,SPC5]D0 NOT 

USE A UALUE OF 3" 
240 PRINT"C DOWN,RIGHT3,SPC43AS THIS 

IS FOR THE SCREEN" 
242 OPEN 1 ,0:PRINT"CC7,DOWN2,RIGHT6, 

SPC2] INPUT DEUICE NUMBER ? 4CSPC2, 

LEFT3] " ; : INPUTal ,Zt 
244 PRINT:CLOSE 1 : Z=UALCZ* J 

S IF Z<0 OR Z>255 OR 2=3 THEN PRINT 

"CUP3]":GOTO 236 
246 GOSUB 1 90: GOTO 200 

248 PRINT "C HOME, D0WN23 .RIGHTS . YELLOW] 
PRESS SPACE TO RESTART PROGRAMS LP] " 

250 FOR DE=1 TO 200: NEXT: SYS 49377 

252 PRINT".C UP .RIGHT5 .RUSON .YELLOW] 

PRESS SPACE TO RESTART PROGRAMC UP2] 
":FOR DE=1 TO 200: NEXT : RETURN 

254 F=0: GOSUB 12: RETURN 

256 F=l: GOSUB 12: RETURN 



SPACE TO SAVE'. If you have made any 
errors in the program then correct them 
before trying again. 

When you press space the program 
"M/CODE" will be SAVEd on to your 
disk. This is the program that 
Detailed Dir will look for when you 
RUN it. 

If you want to use the machine code 
in your own programs then "M/CODE" 
should be loaded with the extension.8,1 
so that it loads at memory location 49152 
(SC0O0) onwards. 



PROGRAM: DIRECT .CODE 



2000 FOR L=0 TO 15:CX-0:FOR D=0 TO 15 
: READ A:CX=CX+A:POKE 49152+L*16+D .A 
:NEXT D 

2010 READ A: IF AOCX THEN PRINT"ERROR 

IN LINE" ; 2040+ C L*l 0 ]: STOP 
2020 NEXT L 

2040 DATA 169,8,133.75.163,0.133,104, 

169,128,133.105,32,68.229.169.1824 
2050 DATA 36,133,2,169,1,133.183,133, 

184,169,36,162,8,133.185,134.1861 
2060 DATA 186,169,2,162.0,133.187,134, 

188,32,213,243,165.75.32,9.1930 
2070 DATA 237,165,185,32.199,237,169, 

0,133,144,160,3,132,183,32,19.2030 
2080 DATA 238,133,195,32,19,238,133, 

3 96,164,144 ,208,87,164,183,136,208, 

2478 

2090 DATA 235,162,6,163,32,32.210.255. 

202,208,250.169.1 .141 ,134,2,2208 
2100 DATA 166,135.165,196,32,205,189, 

169,14.141 ,134,2,169.32,32,22,1863 
2110 DATA 231,32.19,238,166,144.208. 

43,201 ,0,240,6,32,22,231 ,76.1889 
2120 DATA 113,192.32,237.246.240.28. 

37,228,255,240.3 3,201 ,32,208,9,2306 
2130 DATA 32,228,255,240,251,201,3, 

240,10.169,13,32,22,231 ,160,2,2089 
2140 DATA 76,50,192,32,66.246,32.739, 

237,96,169,0.162,4,149,98,1858 
2150 DATA 202,16,251,169,160.133.97, 

162,2,32,198.255.230.101 .208,10, 



2226 



2160 DATA 230.100,208,6,230,99,208,2, 

230,98,32,228,255,165,144,240,2475 
2170 DATA 235, 32, 204, 255, 198. 37. 6, lfU , 

38.100,38,99,38,98,16.244.1739 
2180 DATA 96,162,15,142.32,208,160,73, 

136 ,208 ,253 ,202 .234 ,234 , 165 , 197 , 

2517 

2190 DATA 201,64,240,239,169.240.141. 

32.208.96,0.0,0,0,255.255,2140 
3000 REM xx READY TO SAUE xx 
3010 PRINT "CCLEAR,D0WN3,SPC4]DATA 

ALL CORRECT" 
3020 PRINT "C D0WN4 .SPCJPRESSC SPC , 

RUS0N]SPACECRUSOFF.SPC]TO SAUE" 
3030 GET Ki: IF Ki<>" " THEN 3030 
3040 POKE 43,0:POKE 44,192:PGKE 45,253 

:POKE 46,192:CLR 
3050 SAUE "M/CODE". 8,1 




Programming 



IN THIS ARTICLE I SHALL BE 
concentrating on setting up 
and using split screens. These 
are extremely useful in a wide 
range of games and have the 
distinct advantage of making 
available extra memory within 
the machine and are based on 

raster interrupts. 

Raster Interrupts 

The one type of interrupt not 
discussed last month was the 
raster interrupt. In order lo 
explain how to use raster 
interrupts I had better first 
explain what they are! Rasters 
basically relate to the screen 
picture sent by the C-16 to the 
TV. As the computer outputs 
the screen signals to the 
television it scans from the 
top of the screen lo the 
bottom. 50 times a second. 
Therefore each pixel line that 
is generated (there are eight 
pixel lines in each character 
line of text) is called a raster 
line. There are. therefore, 
25^8=200 raster lines for a 
screen. The border uses a 
further 111 lines at the top 
and bottom of the screen 
display for the PAL colour 
television system as used in 
the UK. On the American 
NTSC system there areonly 61 
raster lines for the border. 

The two memory locations 
$FF28 and $FF1C (65308 and 
65309 decimal) are the vertical 
raster count registers. These 
two bytes can be read to find 
which raster line is currently 
being displayed. As the 
picture is displayed from top 
to bottom, these registers 
increment from zero to 311 
(or 261 for the NTSC system), 
before going back to zero 
again for the next frame. 

Bit zero of address $FF1C 
(65308 decimal) contains the 
highest bit of the raster 
compare register and address 
$FF1D (65309) contains the 
lower eight bits. Also, address 
$F F 1 E (65310 decimal) 
contains the upper eight bits 
of the nine bit horizontal 
raster position register. This 
increments so fast that its only 
real use to the programmer is 
to generate random numbers. 
Fieure 1 shows a short 



The 



demonstrate the basics 
behind operating a split 
screen. The loop in lines 
10100-10120 waits for the 
raster register to equal 123 
decimal, i.e. just below 
halfway down the screen. 
Lines 10100-10170 then set the 
colour of the background 
border to cyan. The loop in 
lines 10200-10220 waits for the 
raster scan to equal zero 
again, i.e. the very top of the 
screen. Lines 10250-10270 
then set the background and 
border to white — it then 
goes round again. The result 
is a two colour screen. Figure 
2 shows this listing as code in 
case you "don't have my C-16 
Assembler which was 
published in the June 1985 
edition of Your Commodore. 

Right, so now we have 
looked at what rasters are. 
let's start thinking about 
raster interrupts. 

Addresses $FF0A and 
$FF0B (65290 and -65291 
decimal) contain the nine bits 
of the raster compare 
register. Address SFF0B holds 
the lower eight bits, and bit 
zero of address $FF0A holds 
the most significant bit. The 
remaining bits of SFF0A hold 
the interrupt mask register, so 
be careful not to alter any of 
these when changing zero. 

When the raster line count 
in registers $FF1C and $FF10 
equals the value in the raster 
compare register, bit one of 
the interrupt status register at 
$FF09 is set (see my interrupts 
article). If bit zero of the 
interrupt enable register 
(SFF0A) is also set, an 
interrupt is generated. As 
explained in my previous 
artir-l^ ArlHrpviPs 10314 and 




$0315 (88 and 89 decimal) 
hold the address of the 
interrupt vector which is 
usually $CE0E, but can be 
altered logo to a user routine. 

Therefore by setting bit 
one of the interrupt mask 
register, setting the raster 
compare registers to the line 
where you wish to interrupt, 
and redirecting the interrupt 
vector you should get an 
interrupt — right? Well, it's 
not so simple unfortunately, 
because the C-16 also uses the 
raster interrupt itself all the 
time for its own split screen 
routines for graphics modes 
two and four. Unfortunately 
these routines are also active 
in all the other graphics 
modes and can never be 
turned off. 

So why not change the 
machine's existing split 
screen routines to create your 
own interrupts and split 
screens? Well, you can't. In 
fact you can't even change 
the line at which the screen 
splits. Therefore to create 
your own raster interrupts, 
split screens etc., you have to 
write it all yourself, including 
some of the interrupt service 
routines, because these also 
mess about with the split 
screen. 

So is it all worth the effort? 
The answer is 'yes'. Split 
screens are more useful for 
the C-16 than just about any 
other computer due to its 
limited memory capacity.. At 
present, when the high- 
resolution mode is selected, a 
huge 10.3 Kbyte portion of 
the 12.3 Kbyte maximum 
available memory is used up 
leaving you with a couple of 
thousand bytes in which you split screen progran 



can do very little. However if 
you split the screen and use 
say 15 of the 25 available high- 
resolution character lines, 
leaving the remaining 10 in 
low-resolution mode, you 
can save 3200 bytes in the 
high-res screen space plus 
another 400 bytes in the 
luminance and 400 bytes in 
the chrominance tables. We 
also gain another 600 bytes in 
the low-res screen and 
another 600 bytes in the low- 
res colours giving a total of 
320O 40O» 40(H60O» 600=5200 
bytes saved. Thus we have a 
total of 7245 bytes free 
compared with the original 
2045. Admittedly this memory 
is scattered all over the place, 
but this is not a serious 
problem for machine code 
programs. There will be much 
more about using the 
additional space in a future 
article. For now just bear in 
mind that it is possible to have 
three and a half times as much 
memory when in hi-res 
mode. 

Split Screen Routine 

Figure 3 shows the assembly 
listing for the split screen 
routine. Figure 4 shows the 
code for the split screen. 
Enter Figure 4 instead of 
Figure 3 if you don't have the 
C-16 Assembler. In Figure 4 
lines 10000-10020 load the 
machine code. The routine is 
stored in an unused area of 
memory at $0600 (1536 
decimal) and is around 200 

bytes long. 

I have included a table 
which is a breakdown of the 
system variables used in the 



• 




Note thai the position of 
the splits must follow in order 
down the screen, i.e. the 
raster line for the second split 
must be greater than that for 
the first split. The raster lines 
for the screen start at one at 
the top of the screen and go 
down to 202 at the bottom. 
Although the screen has only 
200 raster lines and therefore 
in theory the last line of the 
screen should be (200*1$. for 
some reason the lines end at 
202. Also, if you need an 
interrupt right at the top of 
the screen it is better to set 
the raster line to zero instead 
of one as the change will take 
place off the screen avoiding 
any flicker. To avoid flicker 
and attribute difficulties, the 
raster line number for the 
split should be set from the 
following equation: 



Raster line no. 
line)+8 + 1 



(Character 



Note that the character line 
can be from zero to 24. The 
equation makes the screen 
split at the bottom of the 
character line; flicker can 
occur if the raster line is set to 
the middle of the character 
line. 



Assembly Listing 

Lines 10100-10290 — turn on 
the split screen, altering the 
position of the interrupt to 
$0630. They also 'enable' the 
raster interrupts and sets the 
raster compare register up to 
the first split. 

Lines 10300-10380 — turn off 
the split screen system by 
redirecting the interrupt to 
the ROM service routine. 
Lines 11000-11520 — contain 
the interrupt service routine. 
This routine, mainly adapted 
from the C-16's ROM, 
contains all the code 



necessary to make it read the 
keyboard, update the clock, 
etc. Note that it is not possible 
in this case to use the C-16's 
own ROM routines because 
these would ruin the split 
screen. 

Lines 11050-11080 — perform 
a split if the interrupt was a 
raster interrupt. 
Lines 11100-11170 — dealwith 
all the RS232 interrupts used 
in operating printers, disk 
drives, etc. 

Lines 11170-11280 — turn off 
the 'raster interrupt' flag in 
the raster status register if 
there was a raster interrupt 
and also set the new split 
line position in the raster 
compare register. 
Lines 11290-11310 — decide 
whether it is a new 1/50th of a 
second and if it is (i.e. if the 
next split is the top split 
update- the clock, read the 
keyboard and increment 
sound duration registers in 
the routine at lines 11400- 
11520. If it is not however, 
they jump to the IRQ 'exit' 
ROM routine in line 11350. 
Lines 12000-12090 — perform 
a split. This routine interrupts 
the Data byte into its 
appropriate instructions. 
Because all screen changes 
must be done at once, it 
pushes the numbers to be 
changed into registers X and Y 
and stores all the values 
toward the end of the 
routine, at lines 12500-12560. 
Lines 12100-12110 — fetch the 
data byte. 

Lines 12120-12180 — dealwith 
the 'TED fetches from 
RAM/ROM' bit, altering bit 2 
of address $FF12. 
Lines 12182-12194 — dealwith 
the 'position of the video 
matrix' bit by setting byte 
$FF15 to 8 for low-res or with 
the position of the start of the 
luminance table (stored in 
address $07FB for a high-res 
screen). 



Lines 12200-12260 —deal with 
the '24/25 line screen', the 
'bit-map' mode and the 
'extended background 
colour' mode bits by altering 
bits 3,5 and 6 of register $FF06 
accordingly. 

Lines 12300-12390 — deal with 
the '38/40 column screen' bit 
by altering bits 3 and 4 of 
register $FF07 accordingly. 
Lines 12500-12560 — store all 
these values virtually simul- 
taneously to reduce flicker 
between splits. 
Lines 12600-12700 — move 
the split position counter on 1 
to the next split, or back to the 
beginning if the end of the 
split table is reached. 

Data Bytes 

The data byte for each split 
contains all the information 
about the window below it. 
For example if you want a 
screen split in the middle with 
the top half in high-res and 
the bottom in low-res, set the 
date byte for a split at the top 
of the screen for high-res, and 
the data byte for the a split 
half way down for low-res. 

Here is how the bits of the 
data byte are arranged: 
Bit 0: 38/40 Column Screen : 0 
for 38 columns and 1 for 40 
columns. This is used in 
smooth scrolling and will be 
explained in a later article. 
Bit 1: Multicolour Mode: 0 
for mode OFF and 1 for mode 
ON. 

Bit 2: TED Fetches from 
ROM/RAM. In low-res 
normal mode and character 
set is contained in ROM. so 
TED (the text editor device in 
the C-16) therefore fetches 
information from ROM. In 
programmable character 
mode (see my article in the 
November 1985 issue) the 
character set is in RAM, so 
TED therefore fetches from 
RAM. In high-res mode also 
TED fetches from RAM. The 
bit is 0 for 'TED fetchs from 
RAM' and 1 for 'TED fetches 
from ROM'. 

Bit 3: 24/25 Line Screen. This 
is also used in smooth 
scrolling. 24 line mode cuts 
off half a character line from 
the top and half a character 
line from the bottom of the 
screen (the actual visible 
effect depends on where the 
window below the split is. If 
the window is in the middle of 
the screen only, this bit will 
have no effect at all). 
The bit is 0 for 24 lines and 1 
for 25 lines. 



C1 6 



Bit 4: not used. 
Bit 5: Bit Mapped (high-res 
mode). The bit is 0 for OFF 
(for low-res screen) and 1 for 
ON (for high-res screen). 
Bit 6: Extended Background 
Colour Mode (see my article 
in the March 1986 issue of 
Your Commodore). The bit is 
0 for OFF and 1 for ON. 
Bit 7: Position of Video 
Matrix. 0 sets the video matrix 
address to 2048 for low-res 
mode. 1 sets the address to 
the start of the luminance- 
table for high-res mode. 
Therefore the bit is 0 for low- 
res and 1 for high-res. 

For example to set a 
normal low-res screen bits 0.2 
and 3 should be set. the rest of 
the bits should be reset. 
Therefore the data byte 
would be 1+4+8=13=$OD. For 
a standard high-res screen 
(non-multicolour) the byte 
should be 128*32+8+1=169 
=$A9. 



Operating 
Instructions 

To turn on the split screen 
routine type: SYS 1536. 
To turn off the split screen 
routine type: SYS 1568. 

Then to set up a simple 
split screen with the top half 
of the screen in high-res and 
the bottom half in low-res: 

POKE 209,4 — for (2 splits x 2) 
POKE 210,0 — split at top of 
the screen 

POKE 211,169 -data byte for 
1st high-res split 
POKE 212,97 — for a split at 
the 12th line 

POKE 213,13 — data byte for 
2nd split (low-res) 
SYS 1536 - turn it ON. 



The GRAPHIC commands 
do not have an effect -any 
more, but serve their purpose 
in specifying which window 
we are using in Basic E.g. 
GRAPHIC 0 specifies low-res, 
GRAPHIC 1 specifies high-res 
and GRAPHIC 3 specifies 
high-res multicolour mode. 
Also to clear a particular 
screen put a one after the end 
of the GRAPHIC command. 
For instance, if you have 
entered the above commands 
in you should now see 
rubbish on the top half of the 
screen. Type GRAPHIC 1.1 
and the top high-res window 
will clear. Note that either 
GRAPHIC 2.1 or GRAPHIC 4.1 



ear* 



& both 



high resolution screens 
simultaneously. 

Now type CIRCLE.150.45. 
45 (don't forget the initial 
comma) to draw a circle in the 
high-res window. 

Then type PAINT.150.45, 
to fill the circle in. 

Finally type SYS 1568 toget 
back to normal. 

The above example 
should have given you some 
ideas on how to use split 
screens, but does not convey 
much of the power of these 
routines. Figure 5 lists a 
demonstration program 
which is designed to show up 
to four screens in action. 



Datamaka 

The following routine, 
although not having much to 
do with split screens, is an 
important utility when 
dealing with machine code 
and data. This routine was 
used when I printed the code 
in this and the previous two 
installments of Programming 
the C-16. Basically it turns a 
given block of code into DATA 
statements with the option of 
a checksum at the end of each 
line. This program greatly 
reduces the amount of time 
you spend turning your 
machine code games etc. into 
data so that you can send 
them to Your Commodore! 

Figure 6 shows the 
DATAMAKA program. When 
the program is RUN enter the 
START ADDRESS and END 
ADDRESS of the code in 
response to the questions. 
Next enter the starting Basic 
line number of the block of 
DATA statements in response 
to LINE NUMBER ? and the 
step between line numbers in 
response to STEP FOR LINE 
NUMBERS > Lastly enter "Y" 
or "N" in response to 
CHECKSUM(Y/N)? depend- 
ing on whether you want a 
checksum (sum of all the 
numbers in a line and a useful 
check) at the end of each line. 
The program then goes off 
and constructs the DATA 
statements. Note that it ends 
the last line with a r -1\ 

In setting up the DATA 
statements one or two tricks 
are used, notably the 
automatic execution of the 
lines putting them into 
memory once every five data 
statements have been 
displayed on the screen. This 
is done by POKEing 



characters into the keyboard 
buffer so that, when the end 
of line 15100 is reached, 
commands are stored in the 
keyboard buffer to make it 
enter these lines into 
memory. The actual charac- 
ters are a HOME directing the 
cursor to the top of the 
screen, followed by six ENTER 
instructions. The number of 
characters in the keyboard 
buffer is POKEd into the 
'index to keyboard queue' 
register at address 239 in line 
15100. 

The other interesting 
technique employed is the 
way the program is restarted 
automatically to continue 
DATAMAKAing. Every time a 
new DATA line is ENTERed 
into memory the computer 
wipes all the variables, so all 
the information on end 
addresses etc. is lost. To 
overcome this a line is printed 
on the screen (by line 15030) 
that records all the variables 
in the form of commands, for 
instance, S=15020:P=1000: 
and so on at the end of each 
group of five DATA lines 
followed by a GOTO 15010. 
When the C-16 executes this 
line all the variables are 
restored and the program 
continues execution. 

The variable A in line 1000 
should be set to the start 
address of the code. Line 
10020 checks the sum of the 
numbers in each line with the 
checksum value and if they 
do not agree the program 
exits with 'DATA ERROR IN' 
followed by the offending 
line number. This program 
line should be changed to 
10020 LOOP and line 10010 
should change to 

10010 POKE A,D:A=A+1 

if the checksum mode was 
not specified when the data 
was generated. To put this 
program at the start of the 
data and delete the rest of 
DATAMAKA delete line 500 
then type DELETE 15000- 
15100. 

Well, that concludes this 
month's article, I hope it 
provided some useful 
routines and some food for 
thought. Next time I shall be 
applying this and other 
routines to creating extra 
memory on the C-16 and 
showing how to have 4K for 
Basic in high-res mode and 
still have untouched high-res 
and low-res screens. 
Impossible? Reserve your 
copy at the newsagents now! 



START: 10000 ORB $0600 

10100 :L1 LDA $FF1D 

10110 CMP 1123 

10120 DNE R:U 

10150 LDA l$63 

10160 STA $FF15 

10170 STA IFF19 

10200 :L2 LDA $FF1D 

10210 CMP 10 

10220 BNE RtL2 

10250 LDA H7! 

10260 STA IFF15 

10270 STA IFF19 

10300 JMP :L1 
» OK. 



10000 A=1536:D0:B=0:F0RCMT0 
16: READD: IFD=-1THENPRINT"0K. 
.':END 

10010 8=B*D:PQKEA,D:A=A+1:NE 
XT: READD 

10020 IFDOBTHENPRWDATA E 

RROR IN LINE'(PEEK163)+256IP 

EEK(64):END:ELSELO0P 

20000 DATA 173,29,255,201,12 

3,208,249,169,99,141,21,255, 

141,25,255,173, 2517 

20010 DATA 29,255,201,0,208, 

249,169,113,141,21,255,141,2 

5,255,76,0, 2138 

20020 DMA 6,0,0,0,0,0,0,0,0 

,0,0,0,0,0,0,0, 6,-1 



|PR06RAH: FIGURE 3| 


START: 


10000 jSPLIT SCREEN 16 


10010 


; (01986 JOE NICHOLSON 


10020 


0R6 $0600 


10100 




10110 


•ON SPLIT SCREEN 


10120 


:0N SEI 


10130 


LDA l$30 


10140 


STA 10314 


10150 


LDA 1106 


10160 


STA $0315 


10200 


LDA 11 


10210 


STA $D0 


10220 


LDA $D2 


10230 


STA $FF0B 


10240 


LDA $FF0A 


10250 


AND MFE 


10260 


ORA #$02 



10270 

10280 

10290 

10300 

10310 

10320 

10330 

10340 

10350 

10360 

10370 

103B0 

11000 

11010 

11020 

11050 

11060 

11070 

11100 

11110 

11120 

11130 

11140 

11150 

11160 

11170 

11200 

11210 

11220 

11230 

11250 

11260 

11270 

112B0 

11290 

11300 

11310 

11350 

11400 

11410 

11420 

11430 

11440 

11450 

11460 

11470 

U4B0 

11490 

11500 

11510 

11520 

12000 

12010 

12100 

12110 

12120 

12130 

12140 

12150 

12160 

12170 

12180 



STA $FF0A 

CLI 
RTS 
■ 

I OFF SPLIT SCREEN 

:0F SEI 

LDA l$0E 

STA $0314 

LDA #$CE 

STA $0315 

CLI 

RTS 



[INTERRUPT SERVICE ROUTINE 
0R6 $0630 
LDA $FF09 
AND l$02 
BNE RiRA 
:NR BIT $07DB 
BPL R:EA 
LDA $FD01 
STA $0704 
BPL R:EA 
JSR $EA95 
JSR $EA5B 
:EA JSR $E3E4 
LDA $FF09 
AND 12 
BEG R;EX 
STA $FF09 
LDX $D0 
LDA $D2,X 
INC $00 
STA $FF0B 
LDA $D0 
CUP II 
BEQ R:CL 
:EX J HP $FCBE 
:CL JSR $CFBF 
JSR $CECD 
LDA $FB 
PHA 
LDA 10 
STA $FB 
PHA 
CLI 

JSR $DBU 
PLP 
PLA 

STA $FB 
J HP $FCBE 

I 

; PERFORM SPLIT 
:RA LDX $D0 
LDA $D2,X 
STA $DB 
AND 14 
STA $DA 
LDA IFF12 
AND 1251 
ORA $DA 
TAX 



CI 6 



12182 IDA 

12184 AND 

12186 BNE 

12188 LDA 

12190 BNE 

12192 :HI 

12194 :SU 

12200 LDA 

12210 AND 

12220 5TA 

12230 LDA 

12240 AND 

12250 ORft 

12260 TAY 

12300 LDA 

12310 AND 

12320 ASL 

12330 ASL 

12340 ASL 

123S0 5TA 

12360 LDA 

12370 AND 

12380 ORA 

12520 STX 

12530 STY 

12540 STA 

12600 INC 

12610 LDA 

12620 CHP 

12630 BNE 

12650 LDA 

12660 STA 

12700 :NB 



IDB 
1128 
R.-HI 
18 

R:SU 

LDA I07FB 

STA SFF14 

IDB 

1104 

IDA 

IFF06 

1151 

IDA 

IDB 

13 

A 

A 
A 

IDA 

IFF07 

•231 

IDA 

IFF12 

IFF06 

IFF07 

IDO 

IDO 

ID1 

R:NB 

10 

IDO 

J HP :NR 



10000 A=1536:DQ:B«0:F0RC*1T0 
16: READD: IFD S -1THENPRINT"0K. 
."iEND 

10010 B=B+D : POKEA, D: fi-fl+1 : NE 
XT: RE ADD 

10020 I FD< >BTHENPR I NT ■ DATA E 

RROR IN LINE";PEEK(63)+256IP 

EEK{64):END:ELSEL00P 

20000 DATA 120,169,48,141,20 

,3,169,6,141,21,3,169,1,133, 

208,165, 1517 

20010 DATA 210,141,11,255,17 
3,10,255,41,254,9,2,141,10,2 
55,88,96, 1951 

20020 DATA 120,169,14,141,20 
,3,169,206,141,21,3,88,96,0, 
255,0, 1446 

20030 DATA 173,9,255,41,2,20 
8,75,44,216,7,16,14,173,1,25 
3,141, 1628 

20040 DATA 212,7,16,6,32,149 
,234,32,91,234,32,228,227,17 
3,9,255, 1937 

20050 DATA 41,2,240,18,141,9 
,255,166, 208, 181, 210, 230, 20B 
.141.11,255, 2316 



20060 DATA 165,208,201,1,240 

,3,76,190,252,32,191,207.32, 

205,206,165, 2374 

20070 DATA 251,72,169.0,133, 

251,72,88,32,17,219,40,104,1 

33,251,76, 1908 

20080 DATA 190,252,166,208,1 

81,210,133,219,41,4,133,218, 

173,18,255,41, 2442 

20090 DATA 251,5,218,170,165 

,219,41,128,208,4,169,8,208, 

3,173,251, 2221 

20100 DATA 7,141,20,255,165, 

219,41,104,133,218,173.6,255 

,41,151,5, 1934 

20110 DATA 218,168,165,219,4 

1,3,10,10,10,133,218,173,7,2 

55,41,231, 1902 

20120 DATA 5,218,142,18,255, 

140,6,255,141.7.255,230,208. 

165,208,197, 2450 

20130 DATA 209,208,4,169,0,1 

33,208,76,55,6,255,0,255,0,2 

55,0, 1833,-1 



5 6DT01000 

10 CDL0R4 , 1 ; CQL0R1 , 2 , 7: COLOR 
0,liDRAN,3,3T0148,3T0148,92T 
Q3,92TQ3,3 

17 CIRCLE, 148,3,30, ,180,270: 
PAINT,140,4 

20 C0L0R2,5,5!C0L0R3,5,6 
30 DRA«,55,50T010,60T050,40 
T060,3QT065,28:DRAW3,65,28T0 
70,27T080,3l 

40 DRAW3,B0,3lT0U8.22TO85,4 

OT087,75T055,50 

50 DRAM2.87.75TD65.28 

60 PAINT2,20,56,1:PAINT3,70, 

30,1: RETURN 

1000 POKE209,2:POKE210,0:POK 

E211,13:SY51536 

1005 C0L0R0,1:C0L0R1,2:C0L0R 

4,7,4 

1010 GRAPHIC4, 1:PRINT" (HOME) 
SETTING UP ONLY ONE SPLIT: 'i 
LIST1000 

1030 PRINT' IS EQUAL TO NO SP 
LIT SCREEN AT ALL. ":BETKEYAI 
1050 PRINT"(CLR)":LISTUOOiP 
RINT"SET5 UP A 2ND SPLIT: - :C 
0L0R0,6.5:6RAPHIC1,1 
1100 SYS1568:P0KE209,4:P0KE2 
12,57:P0KE213,169:SYS1536 
1110 CHAR,9,11."THIS TIME IN 
H16H RES. 1 

1120 F0RA=1T020STEP2:BQX,64- 
A,80-A,256+A,104*A,B,B:NEXT: 
GETKEYAI 



1200 PRINT"(CLR)":LIST1250:P 
RINT'SETS THE 3RD SPLIT" 
1250 SY51568:P0KE209,6:P0KE2 
14,129:P0KE215,77:SYS1536 
1290 C0L0R3,5.5:C0L0R0,1 
1300 POKE65304,98:PRINT" (DOW 
N) (DOWN) (DOWN) (DOWN) (DOWN) ID 
OWN) (DOWN) (DOWN) (DOWN) (DOWN) 
(DQNN)THIS (RVSMIQFF) >/ E 
XTENDED IRV8H»- rf l-r//-|0FF) 

1310 PRINTSPC ( 18) *\l " : SETK 
EYAI 

1400 PRINT" (HOHE) F INALLY" : LI 
ST1450:PRINT"SETS THE 4TH SP 
LIT TO NULTI COLOUR' 
1410 PRINT-HI-RES NODE:" 
1450 SYS156B:P0KE209,8:P0KE2 
16,161:P0KE217,171:SYS1536 
1455 6RAPHIC3:F0RA=20T024:CH 
AR.O.A," 

■;NEXT 

1460 COL0R2,7,4:C0LORl,8,6:F 
QRA=1TQ40:B=INT(RND(0)I360) 
1470 Y=INT(RND(0)I40)+16I: X= 
INT (RND (0) » 150) : BOX INT (RND (0 
H3)+1,X,Y,X*10,Y+10,B,1:NEX 
T 

1480 GETKEYAI: F0RA=1T016: FOR 
B*0T07 : C0L0R3, A, B : NEXT: NEXT 
2000 C0L0R4 , 1 : C0L0R1 1 7 : GRAPH 
IC4.1 

2010 SVS1568: P0KE209, 2: P0KE2 
10,0:POKE211,i3:SYS1536 
2015 PRINT' (HOME) (DOWN) (DOWN 
) (DOWN) (DOWN) (RGHT) (R6HTJ (R6 
HT) SETT INB UP THE GALAXY... ( 
DOWN) (DOWN) (LEFT) (LEFT) (LEFT 
) (LEFT)PLEASE WA1T.":G0SUB10 
2020 SYS1568:P0KE209,4:P0KE2 
ll,17i:P0KE212,97:P0KE213,13 
:SYS1536 

2050 PRINT" (DOWN) (DOWN) (DOWN 
HDOWNKDOWNJCONDITION (RED) 
RED(WHT) " , "STARDATE: 243. 2" 
2060 PRINT-ENERGY: 42346", 'QU 
ADRANT:10.17" 
2070 PRINT'SHIELDS:500' 
2100 PRINT" (DOWN) (RED)A MUTA 
NT KLIN60N HAS ENTERED THIS 

QUADRANT! !" 
2110 PRINT" IWHTISCQTTIE SAYS 
THAT IF WE DON'T GET SOME 
DILI TH1UM CRYSTALS SOON THE 
SHIP IS IN' 

2120 PRINT" IMMINENT DANGER 0 
F EXPLODING!" 

2150 VQL7:FDRA=1TQ6:FQRB*500 
TO t OOOSTEP 1 0 : SOUND 1 , B , 1 : SPUN 
D2, 1000-B. 1:NEXT:NEXT 
2160 6RAPH I CO : FOR A» 1 6T023 : CH 
AR,0,A,' 



": NEXT 

2170 INPUT" (UP) (UP) (UP) (UP) ( 

UP)(UP)(UP)HHAT ARE YOUR ORD 

ERS CAPTAIN"; Al 

2180 IFAIO'FIRE'ANDAIO'TOR 

PED0"ANDAIO"SH00T"THEN60T02 

160 

2200 PRINT-FIRE WHEN READY' ; 
: GETKEYAI 

2210 PRINT" (U30)IRVSiFIRE( 
OFF) (1132) ":F0RA=1023T0700ST 
EP- 1 : SOUND 1, A , 1 : SDUND2 . A- 1 00 
,1:NEXT 

2220 SQUND3,500,200:PRINT"IY 

EDA HIT!'(WHT)':F0RA«7T0OST 

EP-1:F0RB»16T02STEP-1 

2230 CDL0R3, B, A: NEXT : NEXT: 6E 

TKEYAI:C0L0R3,5,6 



I PR06RAH; FISURE~&] 



5000 60T015000 

10000 A=4096:DO:B=0:FORC=1TQ 

16:READD:!FD=-1THENPRINT"0K. 

.':END 

10010 B=B+D: POKEA. D: A=A*1 : NE 
XT:READD 

10020 IFDOBTHENPRINT'DATA E 

RROR IN LINE":PEEM63)*256IP 

EEK(64):END:ELSEL00P 

15000 INPUT "START ADDRESS"; A 

:INPUT"END ADDRESS" ; F : INPUT" 

LINE NUMBER" ;D 

15005 INPUT"STEP FOR LINE NU 

MBERS'.'H: INPUT-CHECK SUM it/ 

N) ";AI 

15010 PRINT"(CLR)";:F0RC«1T0 
3: PR INTO" DATA" ; 

15020 E«0:FQRB*OT015:PRINTPE 
EK ( A+B) : RIGHTS ( * (LEFT) (LEFT) 
(LEFT) (LEFT) (LEFT)", LENfSTRI 
IPEEK(A*B))>+1M 

15021 IFBTHENPRINT", ": :ELSEP 
RINT- "; 

15022 PRINTRIGHTK-(RGHT) (RG 
HT) (RGHT) (RGHT) ".LENISTRKPE 
EK(A+B)M-1); 

15024 E*E*°£EK(A+B) :NEXTB:D a 
D*H:A=A+16:IFAI=-Y-THENPRINT 

"i "E"i 

15025 IFA>FTHENPRINT",-1":60 
TD15100 

15030 PRINT:NEXTC:PRINT"A*-A 

";D="D":F="F":H="H':AI»"CHRI 

(34iAICHRI(34)":60T015010- 

15100 P0KE239.C*l:P0KEn:9,l 

9:FOR6«1320T01325:POKEG,13:N 

EXT 



Daryl Bowers brings 



you close to the 



completion of your 



own arcade game. 



THIS MONTH'S INSTAL- 
brings us to the point where 
we have a playable game. 




There are two more 
insertions into the main loop 
and a new "FINAL" routine. 

'DEDCHK' simply calls the 
collision detection routines. 
The hardware sprite collision 
facility has a serious drawback 



— it tells you when one sprite 
has collided with another, but 
not which one it has collided 
with. This is fine for games 
such as Jet Set Willy, where 
any sprite collision indicates 
the death of the player, but in 



1 w 


1570 \ 


ffC JSR DEAD 


12220 


i 


1580 


JSR DEDCHK 


12230 CHKIT 




■lift 




12240 


1 




12250 


CLC 


11800 FINAL 


JSR HAIT3 


12260 


ADC I4B 


11810 


JSR RVARS 


12270 


LSR A 


11820 


JSR INIT 


12280 


LSR A 


11630 


RTS 


12290 


LSR A 


11840 


i 


12300 


TAX 


11850 




12310 


LDY 17 


11860 


i 


12320 L00P31 




11670 DEDCHK 


12330 


LDA I06D0.X 


11860 


1 

JSR R0ADCHK 


12340 


CMP 1102 


11890 


12350 


BEQ 60TIT 


11900 


JSR BIKECHK 


12360 


DEX 


11910 


JSR FLYCHK 


12370 


DEY 


11920 


JSR BRDCHK 


123B0 


BNE L00P31 


11930 


( 


12390 NOT IT 


RTS 


11940 


1 


12400 


( 


11950 


RTS 


12410 


t 


11960 


I 


12420 GOT IT 




11970 


- 

1 


12430 


1 


11980 


I 


12440 


DEC RDDEDEL 


11990 R0ADCHK 


12450 


BNE N0TIT 


12000 


| 
I 


12460 


LDA 1100 


12010 


12470 


STA RDDEDEL 


12020 


LDY STAGE 


12480 


LDA FOOD 




IDA JUMPTYPE 


12490 


cup i'0' 


12040 


BNE BI64 


12500 


BEO DEDED 


12050 


1 


12510 


DEC FOOD 


12060 


LDA SPTAB.Y 


12520 


RTS 


12070 


TAX 


12530 DEDED 




12080 


LDA XTAB2»Y 


12540 


STA F00D+1 


12090 


JHP TEST 


12550 


LDA 11 


12100 


! 


12560 


STA DED 


12110 BIG4 




12570 


RTS 


12120 


* 


12580 


* 


12130 


LDA SPTAB2.Y 


12590 


i 


12140 


TAX 


12600 


RTS 


12150 


LDA ITAB2B.Y 


12610 


; 


12160 


i 


12620 


i 


12170 TEST 


12630 BIKECHK 




12180 




12640 


i 


12190 


CPX 1200 


12650 


i 


12200 


BE0 CHKIT 


12660 


* 


12210 


RTS 


12670 





12680 
12690 
12700 
12710 
12720 
12730 
12740 
12750 
12760 
12770 
12780 

12790 BI66 

12800 

12810 

12820 TEST2 

12830 

12B40 

12850 

12860 

12670 

12860 

12890 DEDED2 

12900 

12910 

12920 

12930 

12940 

12950 

12960 

12970 

12980 

12990 FLYCHK 

13000 

13010 

13020 

13030 

13040 N0TFLY2 
13050 

13060 JUHPIN 

13070 

13080 

13090 

13100 

13110 

13120 

13130 



i 

LDA FRENCH 
CLC 

ADC 140 
STA IAC 
LDY STA6E 
LDX JUHPTYPE 
BNE BI66 
LDA XTAB2.Y 
JMP TEST2 
I 

LDA XTAB2B.Y 

( 

i 

CUP IAC 
BCC DEDED2 
RTS 

i 
i 




LDY STAGE 
LDX JUHPTYPE 
BNE JUHPIN 
RTS 

I 

( 

LDA SPTAB2.Y 
CHP #204 
BNE N0TFLY2 

( 

LDA FLYH0VE 
BEQ N0TFLY2 



Programming 



most games this will not 
suffice. For this reason I have 
detected collisions by 
comparing the X and Y co- 
ordinates of the Frog and the 
other characters. 

'ROADCHK' is the first 
routine to be called. This 
checks if the Frog is sitting in a 
puddle. The code from the 
start to 'CHKIT' is used to 
ascertain that the Frog is 
sitting down. To check this 
the current sprite definition is 
found — if this is equal to 200 
then the co-ordinates are 
checked. 



To see whether the 
characters underneath him 
are puddle ones, we must first 
find the position of the 
relevant characters. Remem- 
ber that the first visible sprite 
X co-ordinate is 31 and that 
the frog graphics start 17 
pixels into the front sprite we 
must subtract 48 from the X 
position. If we divide this 
value by eight (the width of 
one character in pixels) then 
we have the X character 
position of the Frog. 

'LOOP3T checks to see if 
the next seven characters are 



puddles or not, and if they are 
we go to 'GOTIT'. At this 
point we decrease the delay 
'RDDEDEL' to reduce the 
damage sustained for 
each contact, then if this has 
reached zero we reduce the 
'FOOD' left. 

'BIKECHK'isavery simple 
check. We take the 
Frenchman's position, add 48, 
and store this in SAC. If the 
frog's X position is less than 
this, he is dead. 

'FLYCHK' follows the 
same comparisons, with the 
addition that the Frog must 



be jumping, and if a collision 
takes place, the Fly's position 
is reset to the start again. 

'SVARS' transfers the 
variable block to the end of 
the program in order that they 
can be retrieved at the start of 
a new game. 'RVARS' does 
exactly the opposite, and is 
called in 'FINAL' to reset all 
variables to their original 
values. 

The final routine is 
'BRDCHK' which operates in 
the same way as 'FLYCHK'. 

Next month — frills. 



13140 
13150 
13160 
13170 
13180 
13190 
13200 
13210 
13220 
13230 
13240 
13250 
13260 
13270 
13280 

13290 YESFLY 

13300 

13310 

13320 

13330 

13340 

13350 

13360 

13370 

133B0 

13390 

13400 

13410 

13420 FINFLY 

13430 

13440 

13450 HITEST 

13460 

13470 

13480 

13490 

13500 

13510 

13520 

13530 

13540 

13550 

13560 

13570 

13560 

13590 SVARS 



! 

LOfi FLYXHI 
BNE HITEST 
( 

LDA XTAB18, Y 
CLC 

A0C 120 
CUP FLVXL0 
BCS N0TFLY2 
CLC 

ADC 115 
BCS HITEST 
CUP FLYXL0 
BCC N0TFLY2 

I 

LDA 10 

STA FLYM0VE 
LDA II 
STA FLYXHI 
LDA 1255 
STA FLYXL0 
JSR PRNTFLY 
LDA »'9' 
STA FOOD 
STA F00D+1 
LDX 12 
JSR L00P25 

RTS 

i 

( 

I 

LDA XTAB1B, Y 
CMP MEB 
BCC FINFLY 
LDA FLYXL0 
CMP 120 
BCC YESFLY 
RTS 

i 
i 



13600 
13610 
13620 
13630 
13640 
13650 
13660 
13670 
13680 
13690 
13700 

13710 L0QP36 

13720 

13730 

13740 

13750 

13760 

13770 

13780 

13790 

13800 

13810 

13820 RVARS 

13830 

13B40 

13850 

13860 

13870 

13B80 

13890 . 

13900 

13910 

13920 

13930 

13940 

13950 L00P37 

13960 

13970 

13980 

13990 

14000 

14010 

14020 

14030 

14040 

14050 



i 

LDA IVARS&255 
STA $FB 
LDA IVARS/256 
STA $FC 

LDA IFINISH4255 
STA IFD 

LDA IFINISH/256 
STA IFE 
LDX 13 
LDY 10 

LDA (IFB),Y 
STA IIFDi ( Y 
DEY 

BNE L0DP36 
INC IFC 
INC IFE 
DEX 

BPL L00P36 
RTS 

I 
I 

LDA IVARS1255 
STA IFB 
LDA IVARS/256 
STA IFC 

LDA IFINISH1255 
STA IFD 

LDA IFINISH/256 
STA IFE 
LDX 13 

LDY 10 

LDA (IFD),Y 

STA (IFB>,Y 
DEY 

BNE L00P37 

INC IFC 

INC IFE 
DEX 

BEG REMAIN 

BPL L00P37 
RTS 



14060 REMAIN 
14070 

140B0 BRDCHK 

14090 

14100 

14110 

14120 

14130 N0TBRD2 
14140 

14150 JUHPIN2 

14160 

14170 

14180 

14190 

14200 

14210 

14220 

14230 

14240 

14250 

14260 

14270 

14280 

14290 

14300 

14310 

14320 

14330 

14340 

14350 

14360 YESBRD 
14370 
14380 
14390 

14400 HITEST2 
14410 
14420 
14430 
14440 
14450 
14460 
14470 

14480 FINBRD 
14490 FINISH 



LDY ISTARH255 
JHP LD0P37. 

I 

LDY STAGE 
LDX JUMPTYPE 
BNE 0UHPIN2 
RTS 

f 



LDA SPTAB2.Y 
CMP 120* 
BNE N0TBRD2 
t 

LDA BRDM0VE 
BEG NDTBRD2 
i 

LDA BRDXHI 
BNE HITEST2 
LDA XTAB1B.Y 
CLC 

ADC 120 
CMP BRDXL0 
BCS N0TBRD2 
CLC 

ADC 115 
CMP BRDXL0 
BCC N0TBRD2 

I 

LDA II 
STA DED 
RTS 
i 



LDA XTAB1B.Y 
CMP IIEB 
BCC FINBRD 
LDA BRDXL0 
CMP 120 
BCC YESBRD 
RTS 





IP 



— 



K Otton and A 



Adams add yet 



another dimension to 



your computer. 




THE FOLLOWING PROGRAM 
is for use on files saved whilst 
using Telcom 64 (Your 
Commodore, April-May 
1986). It provides an easy 
means of editing and 
changing a file with the 
choice to resave with a 
different, and perhaps, more 
appropriate name. 

All the functions are 
available via the main menu 
(Figure 1) and perform the 
following tasks. 

View File 

This is a copy of the view file 
function found in Telcom 64. 
It allows the file to be viewed 
on the screen. 

Use the space bar to pause 
the display and run-stop to 
exit back to the menu. 

Edit File 

is function gives access to 
the file (assuming one has 
been loaded in) and allows 
changes to be made. 

For example, a file 
downloaded from a bulletin 
board could perhaps contain 
two pictures: (1) Snoopy, (2) 
pinup (see Figure 4). 

Using the cursor left/right 
keys you can step through the 
file. To step through at high 
speed cursor up/down 
should be used as this steps in 
blocks of 255 bytes instead of 
single ones. 

Delete and insert keys 
work the same as normal 
(although slower), however, 
for large deletes, FT and F2 
come into there own. 

When the start of delete 
position is reached Press Fl. 
"Delete from xxx" appears on 
the screen (where xxx - 
current position). Now step 
through to the end of delete 
position and Press F2. The 
portion between pressing F1 
and F2 is now deleted and the 
file is viewed from the point 
where Fl was first pressed. 

If an error was made when 
Fl was pressed it can be 
repressed to give a new start 
position .F2 selection is final 
and cannot be changed. 



10 IFA s OTHENA«l:L0AD"EDIT0RC 

000-CEE8",a,l 

20 SYS49152 



PROGRAM: EDITOR 



2000 F0RL'0TO236:ClC"0iF0RD'O 

TD1S : READA: CX-CX+A: P0KE49152 

+K16+D, AiNEXTD 

2010 READA: 1FAOCXTHEHPRINT" 

ERROR IN LINE";2040+(L!10)iS 

TOP 

2020 NEXTL 

2040 DATA76,207, 201, 0,157,0, 
48,232,208,230,32,68,229,32, 
15,201,1956 

2050 DATA169,B,32,210 t 255 t 16 

9,14,32,210,255,162,0,189,11 

6,192,157,2170 

2060 DATA130,4,189,135,192,1 

57,170,4,189,154,192,157,250 

,4,189,173,2289 

2070 DATA192,157,74,5,189,19 

2,192,157,154,5,189,211,192, 

157,234,5,2305 

2080 DATA189,230,192,157,58 t 

6.1B9, 249,192, 157, 138,6,189, 

12,193,157,2314 



2090 DATA21B,6,189,31,193,15 
7,42,7,232,224,19,208,191,96 
,162,0,1975 

2100 DATA169.1, 157,0,216,157 
,0,217,157,0,218,157,0,219,2 
32,224,2124 

2110 DATA0, 208, 239,96, 42,42, 
32,32,69,68,73,84,79,82,32,7 
7,1255 

2120 DATA69,78,B5,32 t 32,42,4 
2,46,46,46,46,46,46,46,46,46 
,794 

2130 DATA46,46,46,46,46,46,4 
6,46,46,46,49,32,86,73,69,87 
,856 

2140 DATA32,70, 73,76, 69,46, 4 
6,46,46,46,46,70,49,50,32,69 
,866 

2150 DATA6B, 73, 84, 32, 70,73,7 
6,69,46,46,46,46,46,46,70,50 
,941 

2160 DATA51, 32, 70, 73, 76,69,3 
2,76,69,78,71,84,72,46,46,46 
,991 

2170 DATA46,70,51,52,32,76,7 
9,65,68,32,70,73,76,69,46,46 
,951 

2180 DATA46,46,46,46,70,52,5 



3,32,83,65,86,69,32,70,73,76 
,945 

2190 DATA69, 46,46,46, 46,46,4 
6,70,53,54,32,72,69,88,32,84 
,899 

2200 DATA79, 32,66,65,83, 73,6 
7,46,46,46,70,54,53,32,80,82 
,976 

2210 DATA73, 78,84,32,70, 73,7 
6,69,46,46,46,46,46,70,55,56 
966 

2220 DATA32,69,88,73,B4,32,8 
4,79,32,66,65,83,73,67,46,46 
,1019 

2230 DATA70,56,255, 32,68, 229 
,173,0,48,208,20,160,193,169 
,205,32,1918 

2240 DATA30, 171,160, 193,169, 

185,32,30,171,32,228,255,240 

,251,96,169,2412 

2250 DATAO.133,251, 169,48,13 

3,252,32,94,192,160,0,177,25 

1,208,3,2103 

2260 DATA76, 165, 193,32,210,2 

55,32,133,193,32,117,193,230 

,251,208,2,2322 

2270 0ATA230, 252,76, 92,193,1 

69,20,141,234,193,160,255,13 

6,208,253,206,2818 

2280 DATA234,193,20B,246,96, 



Communications 




32,228,255,240,11,201,3,208, 
3,76,162,2396 

2290 DATA193, 201, 32,240, 1,96 
,32,228,255,201,32,208,1,96, 
201,3,2020 

2300 DATA208.244, 104, 104,96, 

160,193,169,218,32,30,171,16 

0,193,169,185,2436 

2310 DATA32,30, 171,32,228,25 

5,240,251,96,13,17,17,17,32, 

80,82,1593 

2320 DATA69,83,83,32,65,7B,8 
9,32,75,69,B9,32,34,17,17,32 
,896 

2330 DATA32, 78, 79, 32, 70, 73,7 
6,69,32,34,13,13,32,69,78,68 
,848 

2340 DATA32,79,70,32,70,73,7 
6,69,32,34,0,0,0,170,4,190,9 
31 

2350 DATA85, 255, 169,0,133,25 
1,169,48,133,252,160,0,177,2 
51,240,9,2332 

2360 DATA230,251,208,2,230,2 

52,76,252,193,165,251,141,19 

2,194,165,252,3054 

2370 DATA141, 193, 194,96,32,2 

42,193,32,68,229,160,194,169 

,196,32,30,2201 

23B0 DATA171, 162,0, 169,48,32 

,205,189,32,145,194,169,48,3 

2,159,194,1949 

2390 DATA169,0,32,159,194,16 
0,194,169,216,32,30,171,174, 



93 

2490 DATA6B, 82, 69, 83, 83, 32, 3 
2,34,13,29,17,17,69,78,68,32 
,806 

2500 DATA65 , 68 , 68, 82 , 69 , 83, 8 
3,32,32,32,32,34,13,17,17,32 
,759 

2510 DATAB4,79,84,65,76,32,6 
6,89,84,69,83,32,32,32,32,34 
,973 

2520 DATA19, 34, 19,36,36,34,1 
3,17,17,32,73,78,83,69,82,84 
,726 

2530 DATA83,32,76, 69,70,84, 3 
2,32,32,34,32,34,13,17,17,32 
,689 

2540 DATA84,79, 84, 65, 76,32,6 
6, B9,B4, 69,83,32,32,32,32,34 
,973 

2550 DATA19.34, 19,36,36,34,1 
3,17,17,32,73,78,83,69,82,84 
,726 

2560 DATA83, 32,76, 69, 70,84, 3 
2,32,32,34,170,169,48,133,25 
2,169,1465 

2570 DATA4, 133,251, 169,8,133 
,254,169,1,133,253,160,0,177 
,251,240,2336 

2580 DATA46,201, 13,240,64, 14 

1,246,195,200,177,251,141,24 

5,195,32,174,2561 

2590 DATA195,173,247,195,160 

,0,145,253,24,165,251,105,2, 

133,251,165,2464 



2690 DATA1, 32,186,255,169,17 

8,160,197,32,30,171,162,15,1 

42,157,197,2084 

2700 DATA32, 243, 196, 192, 0,20 

8,7,173,149,197,201,84,208,2 

42,173,149,2454 

2710 DATA197, 201, 68,208,66,1 

69,64,141,20,2,169,48,141,21 

,2,169,1686 

2720 DATA58,141, 22,2,160,0,1 
85,0,2,153,23,2,200,204,155, 
197,1504 

2730 DATA20B,244,169,44,153, 
23,2,169,80,153,24,2,173,148 
,197,201,1990 

2740 DATA83,208, 12, 169,44, 15 
3,25,2,169,87,153,26,2,200,2 
00,200,1733 

2750 DATA200, 200,200,200,76, 

138,196,172,155,197,240,14,1 

60,0,185,0,2333 

2760 DATA2, 153,20,2,200,204, 

155,197,208,244,152,162,20,1 

60,2,32,1913 

2770 DATA1B9,255,169,160,133 

,178,96,169,76,141,148,197,1 

69,191,141,0,2412 

2780 DATA2,32,255,195,169,0, 

162,0,160,48,32,213,255,176, 

41,96,1836 

2790 DATA169,B3,141, 148,197, 
169,191,141,0,2,32,255,195,1 
69,0,133,2025 

2800 DATA251, 169, 48, 133,252, 



Run-stop will place an end 
ol file marker (chequered 
flag) al the position above the 
arrow, this point cannot be 
passed until it is over written 
with a space or charactor. 

Shifted run-stop will exit 
to the menu. Pressing any 
valid key will overwrite the 
original character above the 
arrow and then step on to the 
next. 

Remember in this section 
an up arrow (|) denotes a 
return and can affect both the 
printout and viewfile displays. 

File Length 

Displays the current file's 
start/end address in 
decimal/hex and the number 
of spare bytes available 
should you wish to type in 
more details. 

Load File 

Fairly obvious this one, but it 
should be noted that only one 
error message is displayed for 
both disk and tape regardless 
of the actual error. It is 
"ERROR LOAD/SAVE" and 
could be any fault from 'file 
not found' on disk to the tape 
stop key being pressed on 
tape player. 

The filename must be 
known, although the file 
symbol will be placed in front 
automatically as it is in Telcom 
64. 

Save File 

This will resave the current 
file up to the chequered end 
of file marker. Any alterations 
made in edit mode (option 
two) will be saved and the 
length of file can be made 
longer or shorter by moving 
the end of file market. This 
allows one log file to be split 
into shorter ones with only 
the required information left 
in them. 

Hex to Basic - 

If a hex file has been 
downloaded (Figure 2) it 
should be edited so that the 
first digit is at current position 
zero. An end of file marker 
should be placed at the end of 
the hex. 

By selecting option six, the 
hex will be converted to 
ASCII and placed at 2048 
onwards to build up a Basic 
program in memory. On 



192,194,173,2259 

2400 DATA193, 194,32,205, 189, 

32,145,194,173,193,194,32,15 

9,194,173,192,2494 

2410 DATA194, 32,159,194, 160, 

195,169,6,32,30,171,56,169,3 

,237,192,1999 

2420 DATA194, 141, 194,194,169 

,159,237,193,194,141,195,194 

,174,194,194,173,2940 

2430 0ATA195, 194,32,205, 189, 

32,145,194,173,195,194,32,15 

9,194,173,194,2500 

2440 DATA194,32,159,194,160, 

193,169,185,32,30,171,32,228 

,255,240,251,2525 

2450 DATA96, 169,32,32,210,25 

5,32,210,255,169,36,32,210,2 

55,96,72,2161 

2460 DATA74,74,74,74,201,10, 
144,2,105,6,105,48,32,210,25 
5,104,1518 

2470 DATA41, 15,201, 10, 144,2, 
105,6,105,48,32,210,255,96,0 
,0,1270 

24B0 DATA0, 48,3,111,5,29, 17, 
17,63,64, 65, 82,B4,32, 65,68, 7 



2600 DATA252, 105,0,133, 252,2 
4,230,253,208,2,230,254,76,9 
1,195,24,2329 

2610 DATA165,253,105,2,133,4 
5,165,254,105,0,133,46,169,0 
,200,145,1920 

2620 DATA253, 200, 145,253,96, 
230,251,208,2,230,252,76,91, 
195,169,0,2651 

2630 DATA141, 247,195,173,246 
,195,201,58,144,15,41,15,24, 
105,9,10,1819 

2640 DATA10,10,10,141, 243,19 
5,76,210,195,41,15,10,10,10, 
10,141,1327 

2650 DATA243,195,173,245,195 

,201,58,144,11,41,15,24,105, 

9,141,244,2044 

2660 DATA195, 76,233, 195,41,1 

5,141,244,195,173,244,195,13 

,243,195,141,2539 

2670 DATA247, 195,96,96, 14,85 

,93,110,85,255,85,95,16,255, 

65,32,1844 

2660 DATA231,255,173,149,197 
,162,1,201,84,240,2,162,6,16 
0,0,169,2194 



174,151,197,172,150,197,169, 

251,32,216,255,2817 

2810 DATA176,6,32, 183,255,20 

8,1,96,32,231,255,169,125,16 

0,197,32,2158 

2820 DATA30,171,169,185,160, 

193,32,30,171,32,237,196,96, 

32,228,255,2217 

2830 DATA240, 251, 96, 142,154, 

197,232,169,46,32,210,255,20 

2,224,0,208,2658 

2840 DATA248, 174, 154, 197,232 

,169,157,32,210,255,202,224, 

0,208,248,169,2879 

2650 DATA32, 162,0,157,1,2,23 

2,224,20,208,248,160,0,140,1 

53,197,1936 

2860 DATA169, 164,32,210,255, 

169,157,32,210,255,32,228,25 

5,240,251,172,2831 

2870 DATA153,197, 141, 152,197 

,169,46,32,210,255,169,157,3 

2,210,255,173,2548 

2880 DATA152, 197, 201, 13,240, 

45,201,20,208,13,192,0,240,2 

07,136,169,2234 



completion the program exits 
to Basic and the new program 
can be listed or saved as 
normal. 

Print File 

This is an option to print out 
the new edited file for a hard 
copy. Again no check is made 
to see if the device is present. 
A choice of printer is given 
when the program is first 
started up. 

Exit to Basic 

This one speaks for itself. 
Restart FILE EDITOR with 
SYS49152. 

Loader 

For people using an 801/803 
printer, only lines 10 and 50 
are needed. 1520 users should 
enter the other lines 
depending on their require- 
ments. The option of device 
four for 1520 is only for those 
with the modified 1520. 

10 IF A = OTHEN A = 1 : LOAD 

"FILE EDITOR".8,1 

20 X = ?:REM 6 OR 4 FOR 

DEVICE NUMBER 

30 OPEN 6,X,6:PRINT« 

6,1:CLOSE6:REM SET LOWER 

CASE/SHIFTED UPPER CASE 

40 OPEN 3,X.3:PRINT« 

3.4:CLOSE3: REM SET To 80 

COL MODE 

50 SYS 49152 



Figure 1 




Main Menu 








2) EDIT FILE 


F2 






4) LOAD FILE 


F4 






6) HEX TO BASIC 


F6 






8) EXIT TO BASIC ... 


F8 



Figure 2 

Hex Example 

FROM... Type P to Pause, S lo 
Slop. "MOB01000A2A2 A2A2 
A2A2A2A2A2A2A2A-- 
EDIT TO. 0801000A2A2A2 
A2A2A2A2A2A2A 



Note 

Select option 6 and then save 
or lisi as normal. 



2890 DATA157, 32,210,255,76,2 
9,197,41,127,201,32,144,192, 
204,157,197,2251 
2900 DATA240,1B7,173,152,197 
,153,1,2,32,210,255,169,0,13 
3,212,200,2316 
2910 DATA76,29,197,200,140,1 
55,197,169,13,32,210,255,96, 
147,32,17,1965 

2920 0ATA69,B2,82,79,B2,32,7 
9,78,32,83,65,86,69,47,76,79 
,1120 

2930 0ATA68,68,58,34, 76,68,0 
,0,13,3,15,4,8,15,64,48,542 
2940 DATA5B,B3,48,4B, 32,32,3 
2,32,32,32,32,32,32,32,32,32 

,621 

2950 DATA32,34,147, 5,70,73,7 
6,69,32,78,65,77,69,32,34,32 
,925 

2960 DATA32,32,32,0, 0,170,0, 
170,0,170,19,17,17,17,17,17, 
710 

2970 DATA17, 17, 17,17, 29,29,2 
9,29,29,29,29,29,29,29,83,69 

,510 

2980 DATA76,69,67, 84,32,84,6 
5,80,69,32,79,82,32,68,73,83 
,1075 

2990 DATA75,32,63,13,13,13,2 
9,32,32,32,32,32,32,32,32,32 

,526 

3000 DAT A32 , 32 , 32 , 32 , 69 , 78 , 8 
4,69,82,32,B4,32,79,82,32,6B 
,919 

3010 DATA34, 19, 17, 17, 17,29,3 
2,32,32,32,32,32,32,32,32,32 
,453 

3020 DATA32, 32,83,69, 76,69,6 
7, B4,32, 80,82,73,78,84,69, 82 
,1092 

3030 DATA13, 29,32,32,32,32, 3 
2,32,32,32,32,32,32,32,45,45 
,516 

3040 DATA45,45,45,45,45,45,4 
5,45,45,45,45,45,13,13,29,32 
,627 

3050 0ATA32, 32, 49, 46,46,56,4 
8,49,47,56,48,51,32,32,32,32 

,688 

3060 DATA40, 49, 53, 50,53,41,1 
3,13,29,32,32,32,50,46,46,49 

,628 

3070 DATA53,50,48,32,68,69,B 
6,32,54,32,40,80,82,73,78,84 
,961 

3080 DATA69, 82,32,80, 76,79,8 
4,84,69,82,41,13,13,29,32,32 
,897 

3090 DATA32, 51, 46, 46,49,53,5 



0,48,32,68,69,86,32,52,32,40 
,786 

3100 DATA45,45,45,45,45,68,7 
3,84,84,79,45,45,45,45,45,41 
,879 

3110 DATA13,13,13,13,29,32,3 
2,32,32,32,32,32,32,32,32,69 
,470 

3120 0ATA78,84,69,B2, 32,49,4 
4,50,32,79,82,32,51,46,34,20 
8,1052 

3130 DATA32,30,32,61, 32,82,6 
9,B4,B5,B2,78, 32,32,32,32, 32 
,B27 

3140 DATA32,32,32, 102,32,61, 
32,69,78,68,32,79,70,32,70,7 
3,894 

3150 DATA76.69, 32,32,102, 255 
,255,255,255,255,255,255,255 
,255,255,255,3116 
3160 DATA255.30, 255,255,255, 
255,255,255,255,255,255,255, 
255,255,255,255,3855 
3170 DATA255,255,255,255,32, 
33,34,35,36,37,38,39,40,41,4 

2,43,1470 

3180 DATA44, 45, 46,47,48, 49, 5 
0,51,52,53,54,55,56,57,58,59 
,824 

3190 DATA60, 61, 62,63, 0,1, 2,3 
,4,5,6,7,8,9,10,11,312 
3200 DATA12, 13,14,15,16,17,1 
8,19,20,21,22,23,24,25,26,27 

,312 

3210 DATA28,29,30,31,96,65,6 
6,67,66,69,70,71,72,73,74,75 
,984 

3220 DATA76,77, 78,79,80,81, 8 
2,83,84,85,86,87,88,89,90,12 
3.136B 

3230 DATA124,125,126,127,128 
,129,130,131,132,133,134,135 
,136,137,138,139,2104 
3240 DATA140, 141, 142,143,144 
,145,146,147,148,149,150,151 
,152,153,154,155,2360 
3250 DATA156,157,15B,159,160 
,161,162,163,164,165,166,167 
,168,169,170,171,2616 
3260 0ATA172,173,174,175,175 
,177,178,179,180,181,182,183 
,184,165,186,187,2872 
3270 DATA188,1B9,190,191,192 
,65,66,67,68,69,70,71,72,73, 
74,75,1720 

3280 DATA76,77, 78,79,80, 81, 8 
2,83,84,85,86,87,88,89,90,21 
9,1464 

3290 DATA220 , 221 , 222 , 223, 224 
.223,226,227,228,229,230,231 



,232,233,234,235,3140 
3300 DATA236,237,238,239,240 
,241,242,243,244,245,246,247 
,248,249,250,251,3896 
3310 DATA252,253,254,255,255 
,255,255,253,255,255,255,255 
,255,255,255,255,4074 
3320 DATA253,13,255,255,255, 
255,255,255,255,255,255,255, 
255,255,255,255,3838 
3330 0ATA255, 255,255,255,32, 
33,34,35,36,37,38,39,40,41,4 

2,43,1470 

3340 DATA44, 45,46,47,48,49,5 
0,51,52,53,54,55,56,57,58,59 
,824 

3350 DATA60,61, 62,63,64, 65, 6 
6,67,68,69,70,71,72,73,74,75 

,1080 

3360 DATA76,77,78,79,80,81,B 
2,83,84,85,86,87,68,89,90,91 

,1336 

3370 DATA92,93, 94,95,0,65,66 
,67,68,69,70,71,72,73,74,75, 

1144 

3380 DATA76, 77, 78,79,80, 81, 8 
2,83,84,85,86,87,88,89,90,91 

,1336 

3390 DATA92,93,94,95,255,0,0 
,255,255,255,255,255,255,255 
,255,255,2924 

3400 DATA255, 255,255,255,255 
,255,255,255,255,255,255,255 
,255,255,255,255,4080 
3410 DATA255, 255,255, 255,32, 
255,255,255,255,255,255,255, 
255,255,255,255,3857 
3420 DATA255,255,255,255,255 
,255,255,255,255,255,255,255 
,255,255,253,255,4080 
3430 DATA255 , 255, 255, 255 , 255 
,193,194,195,196,197,198,199 
,200,201,202,203,3453 
3440 DATA204, 205,206, 207, 208 
,209,210,211,212,213,214,215 
,216,217,218,255,3420 
3450 0ATA255,255,255,255,255 
,255,255,255,255,255,255,255 
,255,255,255,255,4080 
3460 DATA255, 255, 255,255,255 
,255,255,255,255,255,255,255 
,255,255,255,255,4080 
3470 0ATA255,255,255,255,255 
,255,255,255,255,255,255,255 
,255,255,255,255,4080 
J480 DATA255, 255, 255, 255,240 
,163,201,131,208,1,96,201,15 
7,206,26,32,2684 
5490 DATA94, 192, 162,0, 169,42 
,157,0,4,157,192,7,232,224,4 



), 208, I860 

3500 DATA245, 169,40, 133,251, 

169,4,133,252,169,42,160,0,1 

45,251,160,2323 

3510 DATA39, 145,251, 165,251, 

24,105,40,133,251,165,252,10 

5,0,133,252,2311 

3520 DATA 1 65 , 252, 20 1 , 7 , 20B , 2 

27,165,251,201,192,208,221,9 

6,201,201,32,2828 

3530 DATA173, 195,201,201,49, 

208,3,76,100,201,201,50,208, 

3,76,109,2054 

3540 DATA201,76, 118,201, 169, 
4,162,4,160,7,76,127,201,169 
,4,162,1841 

3550 DATA6, 160, 0,76, 127,201, 
169,4,162,4,160,0,76,127,201 
,32,1505 

3560 DATA186.255, 169,0,32, IB 
9,255,32,192,255,169,0,133,1 
06,169,48,2190 

3570 DATA133, 107, 160,0, 177,1 

06,240,23,141,194,201,162,4, 

32,201,255,2136 

3580 DATA173, 194,201,32,210, 

255,230,106,208,232,230,107, 

76,146,201,162,2763 

3590 DATA4,32,201,255,169,13 

,32,210,255,32,204,255,169,4 

,32,195,2062 

3600 DAT A255 ,96,71,31,76,93, 
201,32,68,229,96,32,151,196, 
96,32,1775 

3610 DATA68, 229, 169, 1,141, 13 
4,2,32,129,203,32,47,203,32, 
10,192,1624 

3620 DATA32, 228, 255,240,251, 
201,133,208,9,32,51,193,32,1 
0,192,76,2143 

3630 DATA224,201, 201, 137,208 

,9,32,124,202,32,10,192,76,2 

24,201,201,2274 

3640 DATA134, 208,9,32, 20, 194 

,32,10,192,76,224,201,201,13 

8,208,9,1888 

3650 DATA32, 78, 202, 32, 10, 192 
,76,224,201,201,135,208,9,32 
,82,202,1916 

3660 DATA32, 10, 192, 76, 224, 20 
1,201,139,208,9,32,111,202,3 
2,10,192,1871 

3670 DATA76,224,201,201,136, 
208,9,32,120,202,32,10,192,7 
6,224,201,2144 

3680 DATA201, 140,208, 3, 76,74 
,202,76,224,201,32,68,229,96 
,32,151,2013 

3690 DATA196, 96,32,140,203,1 
69,0,160,1,145,253,230,233,2 
08,2,230,2318 



3700 DATA254, 165,253, 141, 151 

,197,165,254,141,150,197,32, 

176,196,96,32,2600 

3710 DATA73,195,32,68,229,10 

4,104,96,32,80,201,96,32,68, 

229,162,1803 

3720 DATA40, 169,1, 157,223,21 

7,169,96,157,223,5,202,208,2 

43,169,30,2309 

3730 DATA141, 28,6, 169,7,141, 

28,218,160,0,169,32,153,236, 

47,200,1735 

3740 DATA192, 20,208, 248,32,2 

23,202,169,47,133,252,169,23 

6,133,251,173,2688 

3750 DATA0,4B,240, 10,32, 191, 

203,32,140,203,32,208,203,96 

,162,0,1800 

3760 DATA189,31, 206, 157,244, 
5,232,224,9,208,245,160,206, 
169,40,32,2357 

3770 0ATA30,171, 160,193,169, 

190,32,30,171,32,228,255,240 

,251,96,160,2408 

3780 DATAO.169,1, 153,43, 219, 

153,123,219,185,208,198,153, 

43,7,185,2059 

3790 DATA226, 198,153,123,7,2 

00,192,18,208,231,96,165,251 

,141,27,206,2442 

3800 DATA165,252,141, 26,206, 

173,27,206,24,105,20,170,173 

,26,206,105,2025 

3810 DATAO, 141, 26,206,56,233 

,48,141,26,206,32,205,189,16 

9,32,32,1742 

3820 DAIA210,255,32,210,255, 

32,210,255,32,210,255,32,210 

,255,96,32,2581 

3830 DATA15, 201, 169, 202,160, 

197,32,30,171,32,228,255,240 

,251,201,84,2468 

3840 D AT A240 ,4,201,68, 206 , 24 

3,141,149,197,32,68,229,32,1 

5,201,169,2197 

3850 DATA17, 160,198,32, 30,17 
1,32,228,255,240,251,201,49, 
208,3,76,2151 

3860 DATA109, 203,201, 50,208, 

3,76,109,203,201,51,208,233, 

141,195,201,2392 

3870 DATA96, 165,251,24, 105,2 

0,141,25,206,165,252,105,0,1 

41,24,206,1926 

3880 DATA96, 162,0,169,0,157, 

0,48,232,208,250,96,169,48,1 

33,254,2022 

3890 DATA169.0, 133,253, 160,0 
,177,253,240,9,230,253,20B,2 
,230,254,2571 

3900 DATA76, 150, 203, 165,253, 



141,17,206,165,254,141,16,20 

6,56,173,17,2239 

3910 DATA206,233,20, 141, 19,2 

06,173,16,206,233,0,141,18,2 

06,96,160,2074 

3920 DATAO, 177,251, 170, 189,2 

44,198,153,224,5,200,192,40, 

20B, 242, 96,2589 

3930 DATA169, 144, 160, 206, 32, 

30,171,32,251,202,169,170,16 

0,206,32,30,2164 

3940 DATA171, 174, 17,206, 173, 

16,206,56,233,48,32,205,189, 

169,32,32,1959 

3930 DATA210, 255,32,210,255, 

32,210,255,32,210,255,169,19 

4,160,206,32,2717 

3960 DATA30,171, 169,3,56,237 

,17,206,170,169,159,237,16,2 

06,142,29,2017 

3970 DATA206, 141,28,206,32,2 

05,189,169,32,32,210,255,32, 

210,255,32,2234 

3980 DATA210,255,32,210,255, 

32,210,255,32,228,255,240,16 

3,201,131,208,2917 

3990 DATA1,96,201,157,20B,26 

,165,252,201,47,208,6,165,25 

1,201,236,2421 

4000 DATA240, 11, 165,251,208, 

2,198,252,198,251,32,191,203 

,76,208,203,2689 

4010 DATA201, 29, 208, 3B, 165, 2 

52,201,159,208,6,165,251,201 

,3,240,23,2350 

4020 DATA165, 252,205, 18,206, 

208,7,165,251,205,19,206,240 

,9,230,251,2637 

4030 DATA208, 2,230,252,32, 19 

1,203,76,208,203,201, 148,208 

,82,173,29,2446 

4040 DATA206,208,5,173,28,20 

6,240,69,165,251,24,105,19,1 

41,15,206,2061 

4050 DATA165, 252,105,0, 141,1 

4,206,169,159,133,254,169,3, 

133,253,160,2316 

4060 DATAO, 177,253, 160, 1,145 

,253,165,253,208,2,198,254,1 

98,253,165,2685 

4070 DATA2S4, 205, 14,206,208, 

233,165,253,205,15,206,208,2 

26,169,32,160,2739 

4080 DATA20, 145,251,32,191,2 

03,32,140,203,169,0,133,198, 

76,208,203,2204 

4090 DATA201, 133,206,28,165, 

251,141,20,206,165,252,141,2 

1,206,169,75,2382 

4100 DATA160,206,32,30,171,1 

69,255,141,30,206,32,251,202 



,76,208,203,2372 

4110 DATA201, 137,208, 107, 173 

,30,206,240,99,165,251,133,8 

7,165,252,133,2587 

4120 DATA88, 173,20, 206, 133,8 

9,173,21,206,133,90,36,165,8 

8,229,90,1960 

4130 DATA240,5,176,12,76,92, 



At first the edit function 
(F2} view of a file may seem 
strange. Different boards 
send out an assortment of 
codes to make up a screen. 



Figure 3 

Note: *= return 

— 15-spaces— WELCOME 

TO — 15-spaces--- 

— 15-spaces — TELCOM 64* 

Figure 3A 

— 15-spaces — WELCOME 
TO" 

---15-spaces-- -TELCOM 64* 



Note 

The screen layouts shown in 
Figure 3 and 3A will both give 
the same result on screen. 
However, when viewed, the 
difference is quite consider- 
able. In Figure 3 there are 15 
spaces each side of 
WELCOME TO' then another 
15 to 'TELCOM 64' giving a 
total of 65 bytes. In Fig 3A the 
file only has 51 bytes as a 
return has been placed after 
the 'TO' which causes the 
cursor to return to the start of 
the next line. 

As already mentioned this 
will differ between different 
boards and viewing the file is 
the only way to know which 
method is being used. 



Figure 3A 

Type Ctrl X to Abort 
Download — snoopy 
data — tttl 

t current position 0: ' current 
position 29 

Press Fl at current pos 0 and 
F2 at current pos 29 the file 
will now look like- 
tftl — snoopy data tttl 



Note 

By placing an end of file 
market () at the point shown 
and then saving the file our 
new file will only contain 
Snoopy. 

This procedure can be 
carried out as many times as 
required. 




205,56,165,97,229,89,240,62, 
144,60,1938 

4140 DATA160.20, 177,87, 160,2 
0,145,89,230,87,208,2,230,98 
,230,69,2022 

4150 DATA209.2, 230, 90, 165,90 

,201,159,209,230,165,89,201, 

3,208,224,2473 

4160 DATA173, 20, 206, 133,251, 

173,21,206,133,252,169,0,141 

,30,206,169,2283 

4170 DATA97, 160,206,32,30, 17 

1,32,191,203,32,140,203,76,2 

08,203,201,2185 

41B0 DATA20, 209, 50,32, 140,20 

3,165,251,133,253,165,252,13 

3,254,160,21,2440 

4190 DATA177, 253, 160,20,145, 

253,230,253,208,2,230,254,16 

5,254,201,159,2964 

4200 DATA208.236, 165,253,201 

,3,209,230,32,191,203,32,140 

,203,169,0,2474 

4210 DATA133, 198,76,208,203, 

201,3,208,15,169,0,160,20,14 



5,251,32,2022 

4220 DATA140,203,32, 191,203, 

76,208,203,201,17,208,18,32, 

113,203,173,2221 

4230 DATA24, 206,201, 48,240,2 

,198,252,32,191,203,76,208,2 

03,201,145,2430 

4240 DATA208,35,32,113,203,2 

38,24,206,173,24,206,205,16, 

206,240,5,2134 

4250 DATA176, 13, 76,221,205,1 

73,25,206,205,17,206,176,2,2 

30,252,32,2215 

4260 DATA191, 203,76, 208, 203, 

72,165,252,201,159,208,6,165 

,251,201,3,2564 

4270 DATA240,25,104,170,189, 

244,199,201,255,240,16,160,2 

0,145,251,230,2699 

4290 DATA251,209,2,230,252,3 

2,191,203,32,140,203,76,209, 

203,0,0,2231 

4290 DATA0,0,0,0, 0,0, 0,0,0,0 

,0,0,0,0,0,32,32 

4300 DATA79,79,32,70,73,76,6 



9,32,19,17,17,17, 
,695 

4310 DATA29, 29,29 
2,32,32,32,32,32, 
,494 

4320 0ATA157,157, 

,157,157,157,157, 

7,17,17,17,1691 

4330 DATA17,17,17 

,109,101,116,101, 

111,109,32,1210 

4340 DATA34,19,17 

7,17,17,32,32,32, 

,396 

4350 DATA32,32,32 
2,32,32,32,32,32, 
,471 

4360 DATA17, 29,29 
2,32,32,32,32,32, 
458 

4370 DATA5,19,17, 
,117,114,114,101, 
112,111,1133 
4380 DATA115.105, 
,110,46,46,46,34, 



29,29,29,29 

,29,29,29,3 
32,32,32,32 

157,157,157 
157,34,19,1 

,32,100,101 
32,102,114, 

,17,17,17,1 
32,32,32,32 

,32,32,32,3 
34,19,17,17 

,29,32,32,3 
32,32,34,0, 

17,17,32,99 
110,116,32, 

116,105,111 
5,19,17,32, 



102,105,1114 

4390 DATA108, 101,32, 101, 110, 

100,32,97,100,100,114,101,11 

5,115,46,46,1418 

4400 DATA46, 34, 5,19,17,17,17 

,17,17,32,110,117,109,32,105 

,110,804 

4410 DATA115,101, 114,116,115 

,32,108,101,102,116,46,46,46 

,34,234,234,1660 

4420 DATA234 , 234 , 234 , 234 , 234 

,234,234,255,186,27,160,0,10 

8,111,28,1,2514 

5000 rem titttimmomst 
ninnim 

5010 REM I READY TO SAVE C 
ODE t 

5020 m utttmniiimiu 
iiumtut 

5030 REM CHAN6E ,8 TO ,1 IN 
LINE BELON IF USIN6 CASSETTE 
* 

5040 P0KE43,0:P0KE44, 192:P0K 
E45 , 235: P0KE46 , 206 : SAVE "EDIT 
ORC0O0-CEEB-,8 m 



TURBO NIBBLER 4.0 H *NEW 1 



Turbo Nibbler 4.0 

Turbo Nibble* 4.0 
Turbo Nibbtof 4.0 

Turbo Nibblor 4.0 



Turbo Nibbler 4.0 
Turbo Nibbler 4.0 
Turbo Nibbler 4.0 
Turbo Nibbler 4.0 
Turbo Nibblor 4 0 
Turbo Nibbl«r 4.0 



Turbo Nibbter4.0 
Turbo Nibbler 4 0 
Turbo Nibbler 4 0 

Turbo Nibbler 4.0 

Turbo Nibbler 4.0 



A big surprise! Now you can copy c 
speeds on a single track. 
The most well known program tn Europe. 
Copies a wnote dtsk m approximately lour 
minutes. 

By far, one ol the best copy programs, 
without using any hardware. With a 
comoiete new copy concept, coptes errors 
20.2 1 .22,23.24.27. 29 also Mlertracks. error 
blocks, wrong IDand daps behind the data 
Mocks. 

Completely sync orientated. 

Can be used with one or two d-sk drives. 

Copies also non 1 54 1 formats 

Copies up lo 4 1 tracks. 

Copies stogie tracks. 

Has an integrated disk scan, for half tracks, 
speed and sync check. This is why Turbo 
Nibtler 4.0can be used by anyone 1 
is operable by following a simple menu, 
is indispensable for making your security copy 
Has an update service at a cost of five 
pounds, with the return of your disk 
Reviewed in the German magazines RUN 
October 1985 and 64'er. 
Turbo Nibbler can be used with a 
Commodore 64 and a 1 54 1 disk drive. 

C15 



FILE MASTER *NEW* 



' Fie Master s a rww osvBioped We copy program 

Toedttg ties seven tunes faster 

'Savog Mes etghi hmas las'* 

■w-rhout me um of any Hardware 

'Can oe usee w.in one or rwo IMI »** Dnves 

"Easy to use menu operation 

'Dtsk commana easy file OVwce opt-on 

•For Commodore 64 Vttn 1 541 r> ... Onve only f 13 00 

Completesei T^ot •«* and <<rU*siw ortfy C23 00 

Aji cdpf s payabk* Ov cheque -nternational postal order or international Money Oder ana 

snoutd be sent to 

EUROSYSTEMS 

For Data Security 
Verlengde Parkweg 6, 
671 7GN Ed©, Holland 
Telephone 0031-8380-32146 

Please add E2 for handling and postage. We send to 



ATTENTION 
AMERICANA 
SOFTWARE 

OWNERS DID 
YOU 




II you did then you're the 
lucky winner of a free 
Americana product ol your 
choice. II you didn't or your 

Americana flame wasn't one ol the many that included ihis 
outstanding oiler then flo out now and buy one - there's a lot ol them about 

For those lucky winners simply indicate the Americana flame ol your choice 
in the space below and send it lo Americana Soltwarc and we'll 
forward your free flame by return. 



Hail ID Tubal) 
ladaxrul ( rnirt. 
Hmriff Mrtti 
Bti-ii-iliini B' 111 



LICENSED 



AMERICANA 



SOFTWARE 



0 THRILL 




Joe Bradley delves 



into the Plus/4's 



memory and looks at 



programs. 



MANY NEWCOMERS TO 
computing may have bought a 
Plus/4 and have been dis- 
appointed that very fewarticles 
have been written for this 
machine. This article is for 
those new enthusiasts who 
wish to look into the machine 
and start writing machine code 
routines. 

There is some difficulty in 
obtaining a full memory map 
for the Plus/4 but this article is 
intended to help in making a 
start. 

First let us have a look at the 
different sections of the 
memory - owners of a Plus/4 
are fortunate here because the 
computer contains an inbuilt 
monitor which will help. 

If you wish to write machine 
code routines you must 
become familiar with the way 
the monitor works and the 
different commands that are 
available. 



The computer contains two 
different types of memory 
location, those that you can 
change, called Random Access 
Memory or RAM, and memory 
locations that are Read Only 
Memory or ROM, these are 
used by the operating system 
and cannot be altered. 

Switch on your Plus/4 and 
type: 

MONITOR (RETURN) 

the computer will respond with 

MONITOR 

PC SR AC XR YR SP 
; FFFF 00 FF FF FF F9 

or something similar. 

The abbreviations are: 



Now type: 

M0000 003F [RETURN] 

If a question mark is printed 
you have made an error in 
entry, probably you have typed 
letter O instead of a 0 (Zero 
number). 

If the entry was correct you 
will see displayed eight rows of 
numbers these are the 
numbers stored in the memory 
locations 0000 to 003F. Note 
addresses are usually given in 
Hexadecimal code which 
counts in. units, 16s, 256s and 
4096s. Thus 003F is 3 X 16 and 
another is 15 i.e. 63 in normal 
dec i rii.il numbers. 

Each location can hold a 
number from zero to 255 this is 
called a byte and is made up of 
eight binary 'bits' which can be 



PC Program 
Counter 

SR Status Register 



AC Accumulator 

the work horse of 

machine code rout 

routines 

XR X Register 

YR Y Register 

SP Stack Pointer 



This is the current address being 
processed by the computer. 
This contains six flags which give 
information about the current 
status of the processor. 



This gives the next free location on 
the stack which is a temporary 
storage area used during processing. 



cither zero or one. More 
details of this may be read in 
any book of machine code. 

The block on the extreme 
right in reverse print is the 
ASCII dump of the code if it is 
possible to be printed. When a 
character cannot be printed it 
is displayed as a full stop (.)• 

The highest address that can 
be read by the processor is 
SFFFF. The dollar sign shows 
that this is a hexadecimal 
number and is equal to (15 X 
40%) + (15X 256) + (15Xl6) + 15. 
In decimal this works out as 64 
X 1024 which is almost 64.000 
and is the reason most early 
computers were limited to 
64K (approximately). 



All the locations from 0000 
to 003F which are on the screen 
are RAM locations that you can 
change but only with care! The 
first 4K (actually 4 X 1024) bytes 
of memory are used by the 
operating system and problems 
can arise if you can change the 
value. Let's examine this in 
more detail. 

Locations 002B and 002C (43 
and 44 decimal) are pointers to 
the start of Basic. To find their 
values, read down the left hand 
side numbers to 0028 and then 
move right counting 8, 9, A, B. 
C. The $2B and $2C locations 
should contain the values of 01 
10. If you have not written any 
machine code then this is your 



first surprise in that addresses 
are always stored in the 
computer in what appears to 
be the wrong order, what is 
called the Lo (Low) byte first 
and then the Hi (High) byte. 
The pointers tell us that the 
current start to a Basic program 
is $1001. 

Now let us try to alter these 
values. Move the cursor over 
the 01 at location $3B and 
change it to 06. Press 
(RETURN], The value will now 
be changed and when we 
return to Basic the computer 
will take $1006 to be the start of 
Basic. 

Return lo Basic by typing a 
letter X and then [RETURN]. 



ADDRESS 
HEX 

S0OOO-S0001 0-1 
$002-$0006 2-7 



$0008 8 
$0014-80015 20-21 
$002B-$002C 43-44 
$002d-$002E 
S002F-S0030 
$0031 -$0032 
$0033-$0034 
$0035-$0036 
S0037-S0038 



System Memory Locations 

SYSTEM USE 

DECIMAL 

Input output chip 

Temp. Used in search and renumber 
routines 

Flag used in quote scan 
Temp-integer evaluation 
Start of Basic 
Start of Basic Variables 
Start of Basic Arrays 
End of Basic Arrays 
Bottom of strings 
String pointer 
Top of available memory 



45-46 
47-48 
49-50 
51-52 
53-54 
55-56 



$0039-$O03A 57-58 
$003B-$003C 59-60 

$003D-$0042 61-66 
$0083 131 
S0084 132 
$0085 133 
$0086 134 
$0087 135 
$0088 136 
$00AB 171 
$00AC 172 
SOOAD 173 
$00AE 174 
S00AF-$00B0 175-176 
$00C8-$00C9 200-201 
$00CA 202 
$0100-S010F 256-271 



$0124-$01FF 
$0333-$03F2 



$0509-$0512 

$0513-$051C 

$051D-S0526 

$0527-$0530 

407F8 

$1000 

S4000 



291-511 
819-1010 



1289-1298 

1299-1308 

1309-1318 

1319-1328 

2040 

40% 

16384 



Current line number 

Pointers used in get 

character routine 

Pointers in ROM routines 

Graphic mode 

Colour Selected 

Multicolour 1 

Foreground colour 

No of columns - screen 

No of rows 

File length 

Logical file number 

Secondary Address 

Device number 

Pointer lo file name 

Pointer current screen line 

Cursor column 

Area used to store string 

after number conversion 

STACK 

Cassette tape buffer 



Logical file numbers 

Primary device numbers 

Secondary addresses 

IRQ Keyboard buffer 

Monitor control for RAM/ROM 

Start of Basic Text 

Start of Basic Text 

when HIRES is being used. 



AVAILABLE 
FOR USE 

NO, Leave alone 
YES 

YES 
YES 

YES - but reset 

YES - but reset 

YES 

YES 

YE5 

YES 

Only move down 
to protect memory 
YES 
YES 

YES 
NO 



Very useful to 
store 

short machine 
code. 



The computer prints READY 
and everything looks OK. 
However, enter a Basic line, 
say: 

1 PRINT [RETURN] 

Your screen will go haywire 
and nothing you do with the 
keyboard will bring back 
control. We say the computer 
has hung. Now we see another 
advantage of the Plus/4 over 
many other computers, it has a 
RESET key. This key is at the side 
next to the ON/OFF switch. 
Press this small button and the 
computer will be reset without 
switching off. Later when you 
are developing machine code 
routines your computer may 
sometimes hang but you will be 
able to keep your programs 
intact if you hold down the 
RUN/STOP key while you press 
the RESET button. (A very 
valuable feature which you will 
learn to treasure). 

Your computer is now reset 
and you now know that some 
parts of RAM cannot be altered 
without thought! As you 
develop your machine code 
expertise you will need to 
know which locations you can 
use without dire consequen- 
ces. The abbreviated table of 
memory locations from 0000 to 
$0FFF shows some that I have 
found useful, a safe rule is to 
restore the original value after 
use. 

Consecutive locations in 
the region $0000 to S00FF are 
particularly valuable - this area 
is called Zero-Page because the 
Hi byte of these addresses is 
zero. Consecutive bytes in zero 
page are often used as pointers 
in machine code routines e.g. 
LDA ($3B).Y tells the computer 
to look at $3B for the Lo byte of 
an address, look at $3C for the 
Hi byte, add the value of the Y 
register to the address 
obtained and then load the 
accumulator with what it ffhds 
at the calculated address. 

We have seen that Basic 
normally starts at $1001 but if 
you type 

GRAPHIC1 [RETURN| 

The screen will show a 
haphazard pattern because 
you will have moved into the 
High Resolution mode. This 
mode takes an extra 12K of 
RAM memory and the 
computer gets this by moving 
the start of Basic up to $4001. 
Even though you may not be 
able to see on your screen 




which key you are pressing, 
carefully type: 

GRAPHICO (RETURN] 

and you will return to the 
normal screen. 

So we see that the operating 
system takes either $1000 
(approx 4K) at the bottom of 
RAM for normal Basic or $4000 
(approx 16K) for high resolu- 
tion graphics. 

What about the top of 
RAM? Well, apart from a small 
area from $FD00lo$FFFF which 
is again used by the system, the 
rest of RAM is available for 
Basic programs. The amount of 
memory from $1000 to $FCFF is 
60671 and this is the number 
that appears on the screen at 
first power up. 

However, to work all the 
Basic system of the computer, it 
needs another 32K of memory 

- the ROM. Where does this go 

- we already know that the 
computer can only read 64K of 
memory and it looks as though 
this is all taken by RAM. What 
happens is that the ROM for 
the operating system has 
addresses from $8000 to $FFF. 
So there are twodifferent bytes 
of memory that have the same 
address one byte in RAM and 
another byte in ROM. When 
the computer is working it 
needs a switch between RAM 
and ROM so that the correct 
byte is read. 

Different areas of memory 
are called memory banks and 
we need banking routines to 
switch different banks in or 
out. 

The Plus/4 memory map 
may be illustrated by Diagram 



but a system call to this part of 
memory would result in a ROM 
routine being entered at an 
unusual point and execution 
continued from this point. 
(Execution usually means death 
of the computer in this case - it 
will probably hang!) 

The inbuilt monitor 
TEDMON allows you to display 
memory locations or dis- 
assemble either RAM or ROM. 

Let us try some examples. 
Type and enter this Basic 
program: 

10 SA=992 

20 FORI=0to9 

30 READX:POKE(SA+l).X 

40 NEXT 

50 DATA 162,26,138.157,200.12, 
202,208,249.96 

This is the type of program that 
appears in this and other com- 
puter magazines. The numbers 
in the data statement are 
POKED into memory one by 
one starting at location 992 if 
the program is RUN. 

The simple machine code 
program following will be 
entered at $03E0 which is in the 
Tape Buffer area and thus safe 
from corruption. 

03E0A21A LDXff$lA 
03E28A TXA 
03E39DC80CSTA $0CC8,X 
03E6CA DEX 
03E7D0F9 BNE $03E2 
03E9 60 RTS 



Let tis look at this in detail. 
The first command loads or sets 
the X register to $1A which is 
the same as 26. the number of 
letters in the alphabet. The 
command TXA transfers the 



Memory Area 

$FD00 - $FFFF 
$8000 - $FCFF 

$4000 - $7FFF 
$1000 - $3FFF 



$0000 - $0FFF 



Diagram 1 

RAM 



ROM 



Banking Routines Operating Routines 
Available for Basic Operating Routines 

BASIC AREA 
Either BASIC 
or HIGH RES. 
GRAPHICS 
RAM used by system 



When first switched on the 
computer has access to RAM 
memory bank $0000 to $7FFF 
and ROM$8000to$FFFF. How- 
ever the PEEK and POKE 
commands will always access 
RAM. A machine code 
program could be POKED to 
the too of RAM (below $FD00) 



value of X. which is 26. to the 
accumulator so both X and A 
are now 26. The location $0CC8 
is the initial or zero column of 
the sixth row in the screen 
memory. The instruction STA 
$0CC8.X stores A in location 
$0CC8 plus the value of X 
which will be column 27 of row 



six (27 because the initial 
position corresponds to X = 0). 
The STA instruction is like a 
POKE so a letter Z will appear 
on the screen. The next line 
decrements X by one which 
now becomes 25. This is not 
zero so the BNE (Branch Not 
Equal) sends the processor 
back to the TXA. This will result 
in a Y being printed and so on 
until X is zero when the 
program will go to the RTS 
(Return from Sub-routine) and 
return to Basic. So all the letters 
of the alphabet will be printed 
in reverse order. SYS 992 
|RETURn| will run the routine. 

OK, so far so good. Now 
let's try the Monitor. Type 
MONITOR and [RETURN]. 
Actually M and (shifted O) is an 
abbreviation that could be 
used. 

Then type: 
D 03E0 03E9 

when the above machine code 
should be displayed. 

Let us try to move this to an 
address where we have both 
ROM and RAM - above $8000. 

Type X and [RETURN] to 
return to Basic. List the 
program already entered and 
change line 10 to read 
SA=32768. It is a good idea to 
save this program now. The 
number 32768 is the decimal 
equivalent of $8000, now RUN 
the " program. The machine 
code will now be in RAM from 
$8000 and it might seem that 
SYS 32768 would run the 
program. Well try it! What 
happens is that the SYS call 
goes to the memory bank that 
is switched in, which is ROM 
above $8000 and happens to 
have a routine to give a warm 
start. If you saved your program 
then reload or type it out again. 
RUN to make sure the machine 
code is in RAM. 

To check, go back into the 
monitor by typing M (Shifted 
O) and [RETURN] then D 8000 
(RETURN]. 

What you now see is ROM 
and not our little program. 

However the Monitor is 
controlled by location $07F8. 

Type M 07F8 07F9 to display 
memory locations and type 
over the first 00 with 80 then 
(RETURN]. The monitor will 
now display RAM above $8000. 
Type D 8000 again and there 
should be our little machine 
code program. You should 
note that although the monitor 
is displaying RAM. if you used 
the G command, i.e. G 8000. 



Plus/a 



then ROM would again be 
executed. (Don't do it!) 

How can a machine code 
above $8000 be executed? The 
secret lies in two memory 
locations. 

$FF3E — ROM select 
$FF3F — RAM select 

Any write (i.e. POKE) to 
$FF3E will select ROM and any 
write to $FF3F will select RAM. 
However care is needed. If you 
do POKE to $FF3F the machine 
will hang! This is because atthe 
first interrupt the interrupt 
vector will point to RAM and 
not the usual interrupt routines 
in ROM. Thus the interrupt 
must be disabled before a 
switch to RAM and then 
cleared after the call to RAM is 
finished. 

Type the following extra lines: 

60 SA=992 

70 FORI=0 to 11 

80 READX:POKE(SA*l),X 

90 NEXT 

100 DATA 120,141,63,255,32, 
0.128.141,62,255,88,96 

Now. if you RUN the 
program in addition to 
entering the old routine at 
$8000 in RAM you will also have 
entered the following routine 
at $03E0: 



03E078 
03E1 8D3FFF 
03E4 200080 
03E78D3EFF 
03EA58 
03EB60 



SEI 

STA $FF3F 
JSR $8000 
STA $FF3F 
CLI 
RTS 



You could check by going 
into monitor and disassembl- 
ing from $03E0 and also $8000. 
The command SYS 992 
(RETURN] will run routine. 

Let's examine this in detail. 
When you enter the command 
SYS 992 the program will go to 
$03EO and set the interrupt i.e. 
the interrupt no longer occurs. 
The next op-code at $03E1 
looks as though we are irying to 
put the value of A into the 
location $FF3F but actually this 
acts as a switch which changes 
from ROM to RAM. The next 
op-code makes the processor 
jump to the sub routine in 
RAM at $8000 and executes it - 
printing out the alphabet as 
before. The RTS at the end of 
the $8000 sub-routine returns 
the processor to $03E7 where 
the STA $FF3E switches back to 
ROM. The interrupt is returned 
to normal and the final RTS 
returns us to Basic. 



37 



GRAPHICALLY 
SPEAKING 



Stuart Cooke takes a close ) 



look at Vidcom 64, a new 



| low priced art package. 

NO MATTER WHAT SORT OF PROG- 
ram you are writing for your C64, 
presentation is importanl. If you are 
writing a business package then the 
screen should be made to look as inter- 
esting as possible. On the other hand if 
you are writing a game you will need to 
provide an interesting backdrop for 
your game. There's no point in writing 
the best ever platform game if it isn't 
pleasing to the eye. 

Designing screens on the C64 is not 
that easy since there are no inbuilt 
graphics commands available. 
Therefore, many programmers will use a 
graphics package that will help them 
draw 'pictures' in as short a time as 
possible and with ease. Numerous 
packages and peripherals are available. 
For example you could use a light pen or 
a touch tablet or even your joystick. 

Vidcom 64 is another package to add 
to that already overflowing number of 
programs available, it does however 
have one feature that will make it stand 
way above the others, its price is only 
£4.95. 

Vidcom's 64 will work on either the 
C64's multi colour or standard bit map 
screens. Standard bit map mode allows 
you to use two different colours in any 
character square on the screen while 
multi-colour mode allows you to have 
four colours in any square with a loss in 
horizontal resolution, i.e. the coloured 
'dots' are twice as big. 

The best controller to use with 
Vidcom 64 is a trackball, however for 
those who can't afford one of these fairly 
expensive devices, a normal joystick will 
work just as well. 

Layout 



On entering the program the screen is 
split into two halves. The upper half is 
the top half of the screen on which you 
will draw, the other half is the control 





1 nl 1 i* lii 1 1 f* i .v >1 














*-*~ — — ' 1 





Js 



* - 



panel which displays most of the 
functions available. I say most as there 
are actually three menus which appear 
al this position, each one being selected 
by the function keys. Moving your con- 
troller will move a small arrow around 
the screen allowing you to choose which 
command you want to use. Each press of 
the firebutton is acknowledged by a 
tone and the command that you have 
selected starts to flash. 

Entering the drawing area is simple, 
you just have to press the control key. As 
I have previously said you can only see 
half of the drawing screen at once. 
However, if you move your pointer 
down the screen the command menu 
will flip up to the top of the screen 
allowing you to alter the contents of the 
bottom half of the screen. Sometimes 
this is quite difficult to use as you can't 
see what is on the other half of the 
screen to which you are writing on. 
Thankfully the author of the program 
has included a way of turning off the 
command menu allowing access to the 
full screen. 

The three command menus available 
are the drawing menu which allows you 
to select all of the drawing commands, 
the definition menu which allows you to 
manipulate sprites, characters and 
patterns and the I/O menu which allows 
you to save all of your work to disk or 
tape. 



Commands 



All of the expected drawing commands 
are available. We have the freehand 
draw, band draw, box, circle etc. There 
are even some extra ones such as the 
ability to duplicate areas of the screen, 
rotate the contents of a box on the 
screen and reverse the contents of a box. 

A few fill commands are also avail- 
able from the drawing menu. Vidcom 64 
has two graphic screens available for 
use. The-merge fill routines available in 
this menu allow you to merge areas of 
one of the graphics screens with the 
other. 

A 'normal' fill routine is available 
from the definition. 

The PAT FILL command allows you to 
fill areas of the screen with a pattern of 
your choice. This can be one of the 
patterns included in the program which 
consist of everything from a solid to a 
brick wall, or you can use the grab 
definition command which allows you 
to generate a new pattern by grabbing 
an area of the screen. 

As you are no doubt aware, the 
screens in most games programs are not 
saved as a picture. Rather, the screens 
are built up from a number of re- 
defined characters. The reason for this is 
that using characters will take up a lot 
less memory and you can use characters 



from one screen on another, saving 
even more space. With Vidcom 64 it is 
possible to grab character definitions 
from the screen. This means that you can 
use this package to design your screen 
and then save it as a number of 
characters. You can use these characters 
to design your other screens. 

Not only can you grab characters but 
it is also possible to grab sprite 
definitions. Now it is a simple matter to 
change an area of the screen into sprites 
for use in another program. 

Input/Output 

The I/O menu offers a wide range of 
functions. It is possible to LOAD, SAVE, 
VERIFY and REPLACE data. Data can be 
the actual graphics screen, or the 
pattern, character or sprite definitions. It 
is also possible to select whether you are 
using cassette or disk from this menu. 

Gripes 

Obviously no program is perfect and I 
did think of a few improvements that 
could have been made to this package to 
really make it stand out from the rest. 

There is no function that allows you 
to get a printer dump of the screen that 
you are designing. A screen dump is 
often quite useful for reference without 
having to load the screen back into the 
computer. There are many similar 
packages that do offer this facility. 

I previously mentioned that the 
program makes a beeping noise 
whenever you select a command from 
one of the menus. However some of the 
drawing commands need more than 
one press of the fire button to operate. 
No indication is given when the 
program has acknowledged the first 
press. From experience this quite often 
means that you end up with circles and 
boxes that you can't see. A simple beep 
after each press of the fire button would 
have made things a lot clearer. 

For £4.95 it is very difficult to fault 
Vidcom 64. It is an extremely easy to use 
and powerful program offering many 
facilities that are only available on more 
expensive programs. 

If you don't own a graphics program 
then I would suggest that you go out and 
buy this. Even if you can't draw its great 
fun just messing around. 

It you already own a graphics 
package then this is still worth looking at 
as it has some very powerful features. 



Touchline 

Name: Vidcom 64 
Supplier: Activision 

Address: 23, Pond St, Hampstead NW3 
2PN 




Steve Lucas brings you 



an adventure program 



[for the Pl us/4 



- 



THERE HAVE BEEN MANY 
rumours about my great uncle 
Victor Frankenstein having 
created a monster, but I have 
always dismissed them as 
superstitious nonsense. Imag- 
ine my surprise when I 
received a letter in ihe post 
(rom a solicitor informing me 
that Uncle Victor had died and 
asking me to come down to his 
mansion. With no clear idea of 
the reason for my journey, I 
travelled overnight to the 
lonely village where Uncle 
Victor's mansion stands and at 
this moment I am standing on 
the steps with just a note and a 
key to the house. 

I have to discover the 
reason for my journey and 
solve this mystery. You should 
give me instructions as to what 
to do by typing in instructions 
in the form of one or two word 
sentences. 

Here is a list of some of the 
words I understand: go. in, out, 
up, down, n,s, e, w, help, look, 
search, open, unlock, kill, 
attack, sew, fit. insert, cut, dig, 
score, rub, ride, screw, 
unscrew, get, take, drop, leave, 
put. pull, connect, drink, eat, 
wail, swim, wash 

Notes 

1. Line 10 forces the computer 
to use the upper/lower case 
mode and therefore all instruc- 
tions must be given to the com- 
puter in lower case only. 



18 PRINT CHR$(Mt:CHR$(9) 

29 PRINT" [CLEAR] [ RED] " 

30 CHAR 1,9,3,'ls T1HE [s M] 
ONSTER Is RETURNS' 

40 CHAR 1,9,4/============= 



50 PRINT :PRINT:PRINT'tBLUEH 
s HIT NAHE IS Is H3ERBERT [s 
F1RANKENSTEIN AND Is I] 1 
60 PRINT-HAVE JUST RECIEVED 
A NOTE IN THE POST- 
70 PRINT'FROH MY UNCLE , Is V 
3ICT0R U FRANKENSTEIN MHO 

a 

80 PRINT-DIED UNDER NYSTERIO 



Variables Used 

S%(X,Y) holds the map 

e,f tests action 

k check for word recognition 

P% current location 

B%(x,y) pointer to location of objects 

Q$(x) descriptions of locations 

C$(x) descriptions of objects 

aa-az flags for actions 

N$(x) words understood 

N%(x) pointer to words 

X$ input sentence 

C$.R$,D$,LS substrings of input sentence 

Program Breakdown 

10 selects lower case/upper case mode 

20-130 instructions 

140-190 fills arrays and set variables 

200-750 data for game 

760-780 initialise 

790-1580 main control loop..do loop until win game 

800-860 test for traps etc 

870 . describe location 

880-1040 directions 

1050-1090 describe objects 

1100 input sentence 

1120-1570 call appropriate subroutine (if necessary!) 

1590 win game 

1600-3570 subroutines 



2. The listing takes up just over 
14K of memory, but needs 
more than 17K for variable 
storage. It will not, therefore 
run in the C-16. If, however, all 
the spaces between keywords 
are removed and the descrip- 
tions of locations and objects 
are shortened, you should be 
able to run the game in the C- 
16. 

3. C64 owners should be able to 
run this game if they: Split any 
lines containing IF THEN ELSE 
statements into separate lines 
with different conditions; 
replace the main control DO 
LOOP UNTIL loop with a con- 
ditional jump ie. remove line 
790 and replace line 1580 with: 

1580 IF <P%=24 AND AT=2) 
THEN 1590 

1581 GOTO 800 

Replace scnclr with a PRINT 
"clear screen" command; 
GETKEY A$ just waits for a key 
to be pressed and can be re- 
placed with: 

770 GET A$: IF A$=" " THEN 770 



US CIRCUMSTANCES LAS7HEEK . " 
90 PRINTTs T3HE NOTE READS 

■ 

100 PRINT:PRINT'[GREEN][s Yl 
OU MUST DESTROY THE MONSTER 
BEFORE IT IS TOO LATE !!!»■ 
110 PRINT:PRINT'tBLUE3[s II 
AM AT THIS MOMENT STANDI NB 0 
N THE" 

120 PRINTTs T1HE STEPS OF U 

NCLE [5 VIICTOR'S MANSION." 

130 PRINT :PRINT:PRINT" [RED3 E 

5 PJLEASE HELP HE IN MY TASK 
■ 

!40 DIM QI!60),BIf40,H.V*'i 
0»,6$(5«),NZUesN$>;50),Ut5 
0),SIl60,4i 



150 FOR 1=1 TO 2b:REAB GS <X> 
,BJU,ll,N$(XJ:Nim=*:NEn 
160 FOR 1=1 TO 46:READ 0$U> 
:F0R f=l TO 4:READ Sr*,Ti:N 
EXT Y,l 

170 PZ=13:N$(25)='CRQNBAR':6 

*i20)=":6*<21>=" 

190 K(25,n«29:W125i*'fl :T 

RONS CR0NtiAR , :b$i2)="A NEEDL 

E AND THREAD" 

1^0 N$\3J='NEED.E" 

200 DATA A T ATTf <iOTE,l3,NO T 

E.AN OLD BRASS KEM3.KE',A 

SEEL OF COT'ON 

210 DATA 4,CGTT0N.ft :EMGfc,4, 

LEMON, A PLASTIC DUS T BIN,1 ,DU 

STBIN 



220 DATA A CANDLE, 3, CANDLE, A 
SOLD PEN IN A HOLDER, 6, PEN 
238 DATA A MONS'ER STRAP*0 
TO A TABLE,* 1 '. MONSTER. A SCAL 
PEL, 20, SCALPEL 
240 DATA A LARGE 6LASS BOTTl 
E ,21 , BOTTLE. A SMALL lEVER,22 
.LEVER 

250 DATA fi PADLOCK. 22, PADLOC 
K.A PAINTING ON THE KALL,8,P 
AINTING 

260 DATA A PAIR OF SLIPPERS, 

5, SLIPPERS,", B.HAP 

270 DATA AN OLD LEATHER DIAR 

Y t 12,DIARY.A STALE SANDWICH, 

3 , SANDWICH ,A SPADE ,23 

2B0 DATA SPADE, A CDFFIN,4i,C 



Plus/4 




OFFIN,A CORPSE, 41, CORPSE, A H 
EART, 41, HEART 

290 DATA A SCREWDRIVER, 39, SC 

RENDRIVER,A PAIR OF ELECTROS 

ES,46,ELECTR0DES 

308 DATA A CRUCIFIX ,30,CRUCI 

FII, - ' f 8,HflP," - f l f BATCH 

3I« DATA-IN THE BACKYARD. ts 

A] PILE OF BOXES STANDS IN 
ONE CORNER. ',0,0, 0,0 
320 DATA' IN A COMFORTABLE LO 
UKGE.\0, 0,3,0 
330 DATAMN THE DINING ROOM. 

Is A] HIGHLY POLISHED TAB 
LE STANDS IN THE CENTRE." 
340 DATA 0,6, 4, 2, "IN THE KIT 
CHEN, ts T)HE SINK IS FULL 0 
F DIRTt POTS',0, 7,0,3 
350 DATA' IN A BEDROOM. Cs T3 
HERE IS A LARGE FOUR PD5 
TER BED HERE.' ,0,8,0,0 
360 DATA' IN A LARGE OAK PANE 
LLED LIBRART.', 3,0,7,0 
370 DATA'IN THE HALL, [s A] 
HIDE STAIRCASE LEADS UP FRO 
H HERE. '.4, 13.0.0 



380 DATA'ON THE LANDING. [5 
A} STAIRCASE LEADS DOWN. ',5. 
12,9,1 

290 DATA'IN A SHALL BEDROOM. 
',0,0.10,8 

400 DATA'IN A CLOSET FULL OF 
OLD CLOTHES. [5 A3 RAT LIE 
S IN ONE CORNER. ',0,0,0.9 
410 DATA'IN THE !GILET.",0,0 

420 DATA'IN THE BATHROOM, is 

A3 TAP DRIP5 INTG THE RUS 
V BATH.', 8,0,11,0 
431 nATC'ON the nnnwrp 

*N OLD MANSION. ",0,14,0,0 
440 DATA'ON A DIRT TRACK LEA 
DING THROUGH AN QVERGRO 
KN GARDEN.', 13,23,0, 0 
«5i DATA'IN A SECRET PASSAGE 
.' ,0,1b, 6,0. 'AT THE TOP OF A 
FLIGHT OF STAIRS.' 
460 DATA 15, 0,0,0, 'AT THE BO 
TTQH OF A FLIGHT OF STEPS. E 
s A] PASSAGE LEADS EAST.' 
470 DATA 0.0, 18,0, 'AT THE NO 
RTHERN END OF A SECRET 



LABORATORY. ',0,19,0 
480 DATA 17, 'IN A SECRET LAB 
ORATOR f . [5 T1HERE IS AN 

OPE RAT I N6 TABLE HERE.' 
490 DATA 18, 20, 0,0, "IN A PRE 
P ROOM. Is T 3 HERE IS A GLASS 

CABINETQN THE MALL. '.19,22 
500 DATA 21,0, 'IN A CHEMICAL 

STORE ROOfl.", 0,0, 0,20 
510 DATA'IN A SHALL ROOM. Is 

T]HERE IS A LARGE CON 
7R0L PANEL HERE. ',20. 0,0,0 
520 DATA'ON A DIRT TRACK. [5 

T3HERE IS A SIGNPOST HER 
E. ',14,33,24,0 
530 DATA'ON A SECRET rOOTPA T 
H LEADING THROUGH A PEAT BO 
6.',0,0,25,23 

540 DATA-STANDING OUTSIDE A 
HUT WHICH IS SURROUN 
DED Bf T REES.'. 0,0,0,24 
550 DATA'AT ONE END OF THE H 
UT. ',0,27,0,0 

560 DATA" IN5IDE A SHALL HUT. 
fs A! TABLE STANDS *GA 
INST THE WALL. ',26,0,29, 26 
570 DATA'IN THE HUT. [s TIME 
RE'S A BAG HERE. '.0,0, 27,0 
588 DATA'IN THE HUT. ',0,0,0, 
27 

590 DATA'B' AN ENORMOUS ALTA 
R. Is A3NCIENT SEPULCRE5 LIN 
E THE HALLS . ',0,31 .0,0 
600 DATA" INSIDE A LARGE CRIP 
T.", 30, 32, 0.0 

610 DATA'OUTSIDE A CRYPT. [5 
MIST SWIRLS AROUND THE ENT 
RANCE.'. 0.8, 33.44 
620 DATA'ON A DIRT TRACK. ',2 
3.34,0,32 

630 DATA'BT A URGE METAL GA 
^.',33,35,0.0 
*40 DATA'ON A DIRT TRACK . Es 
TJHE HA! SOUTH LEADS INT 
0 A GlQQHT FOREST. ",34, 36 
650 DATA 0,0. 'IN A GLOOM T FO 
REST. ',35, 37, 40, 38 
660 DATA-IN A SMALL '.EARING 
, IS TjHE FOREST IS TOO THI 
CK TO TRAVEL FURTHER. ".36 
o70 DATA 0.0,0, 'LOST j N 6 SL 
ODMI FOREST." ,38,38,38,38 
680 DATA' INS IDE THE FORESTER 
'£ MEAGRE COTTAGE. ",0,0,0.0 
690 DATA*OU T SIDE A NQODCUTTE 
R'S CC'TAGE." ,0,0.0.36 
700 DATA'AT THE BOTTOM 0^ A 
FRESHL* DUG GRAVE. ',0,0. 0.0 
710 DATA'BT A FRESHLt DUG GR 



AVE. ",0,0, 43, 34 

720 DATA-Bt SOME TOMBSTONES. 

\M,M2 

730 DATA'ON A GRAVEL PATH.', 
0,45,32.0 

740 DATA-BT A GRANITE MONOLI 

TH. Is A] LARGE RED LEVERPRO 

TRUDES FROM THE BASE.' 

750 DATA 44, 0.0,0, 'INSIDE A 

SECRET CHAMBER." ,45,0,0.0 

760 PRINT"! DOWN I I DOWN } [RV 

SON3IBLUE3 Is P3RESS ANT KE 

I TO START THE GAME . 1 

770 GETKtT AJ 

780 SCNCLR:SU7,4)=6 

790 DO 

800 IF AT=1 AND PZ=19 THEN A 
T=2:PRlNTTs TJHE MONSTER SE 
ES ME. Is [I'D BETTER MOVE I 
T !'" 

810 IF AT=2 AND Ai=I THEN « 
=-[s TJHE MONSTER CATCHES HE 
'":60SUB 2000 

820 IF AT=2 THEN PRINT'ts T] 
HE MONSTER IS JUST ONE STEP 
BEHIND ME" 

830 IF PZ*15 AND AE<>2 THEN 
H='ts I] TRIPPED AND FELL ! 
N THE DARK":60SUB 2000 
840 IF PM9 AND AR=2 THEN P 
RINT" [ s T]HE MONSTER HAS A P 
AIR OF ELECTRODES ATTACHE 
D!' 

850 IF PI=34 AND A^2 THEN P 
RINT'ts A] VICIOUS WOLF GROW 
LS AT HE" 

860 IF PI=2* AND AJ<3 THEN I 
l="Is I) SINK INTO THE BOG" 
:60SUB 2000 

870 PR I NT " t DOWN J C DOWN ] [ BLUE ] 
[s I] AM :-' 

880 PRINT'[DOWN][RED]';Q*(PI 

>:K=0:A$=":Ai=Pl 

890 IF SI!PI,1>>0 THEN A$='i 

s N3DRTH' 

900 IF 5I(PI,2i >0 AND LENIAS 
(>0 THEN A$=A$*',[s SJOUTH' 
910 IF SIiPI,2))0 AND LEN (At 
>=0 THEN Al='[s SlOUTrt" 
920 IF SI(PI,3);0 AND LENIA* 
>>0 THEN A$=A$*Vs E3AST" 
930 IF SI(PI,3)/0 AND LEN(AI 
)=0 THEN A$='[s E)AST' 
940 IF S7(PI.4)>0 AND LEN'AS 
)>0 THEN A$=At+'.Is W3EST" 
950 IF SZ<PI.4)>0 AND LEN (A* 
!=0 THEN A$='ts W3EST' 
960 IF PI=! THEN A$='[s I IN' 
970 IF PZ=4 OR PI=31 OR Pl=2 



6 THEN W«A$*VS 01UT' 
988 IF (PZ=25 OR Pl=4i OR PI 

=32) THEN A$=A$+V& IVF 
998 IF PI=39 THEN A$='U Q3U 

Ti 

1806 IF n»M OR PI=B THEN A 

1018 IF PX»7 OR PM7 OR PZ« 

41 THEN At=A$+" ts UJP" 

1828 IF PI=42 AND Mt>l THEN 

A$=A$*', Is DIOMN" 

1838 PR I NT • C DOMN 3 J DDMN ] [ BLUE 

]Es U CAN 80 :-' 

1848 PRWT'lREDJ'sW 

1858 E=8:F0R 1=1 TO 26:PP!t=e 

:IF BI(I,1)=P2 THEN PPM 

1868 IF PPM THEN 1888 

1870 NEITsGOTQ 1108 

I860 IF E=8 THEN PRINT'tBLUE 

ItBONNlts I] CAN SEE :-[RED3 



1898 PRINTG$U):E=l:GOTO 10? 

I? 

1100 PRINT'tDONNlIBLUElts K3 
HAT SHALL Is II DO NON IPURP 
LEI "::INPUT Z* 
1118 B$=LEFTSU$,2J:C$=LEFT$ 
lZ$,3):DJ=LEFT$tZ$,4) 
1128 SCNCLR:SOUND 1,888,1 
1138 IF CJ='PRA' THEN PRINT" 
[BLACKlts PIRATING HAKES HE 
FEEL BETTER BUT NOTHING HAPP 
ENS.':K=1 

1148 IF C$='HEL' THEN PRINT' 

[BLAOCHs 13*11 SORRY Is 13 H 

AVEN'T A CLt)E":K=l 

1158 IF RIGHT$(Z$,3)='QFF' T 

HEN K=l:PRINT'ts H3IND TOUR 

LANGUA6E!' 

1160 IF C$='SCO' THEN K=1:PR 
IMT'ts T3HIS IS NO BftflE TOU 
KNOW! " 

1170 IF C$='RUB' THEN K=l :PR 
INT'ts DION'T BE ABSURD" 
1181 IF C^'RID 1 THEN K=1:PR 
INT'ts Ml HAT IN ? B 
1198 IF dx'MV 1 THEN K=l sfiO 
SUB 2878 

1288 IF CS='REA' THEN K=l :SO 
SUB 2100 

1218 IF C$='OPE- THEN K=l:GO 
SUB 2260 

1220 IF C$='UNS' OR CS='SCR' 
THEN K=1:60SUB 2318 
1230 IF C$="UNL" THEN K=!:6Q 
SUB 2368 

1248 IF C*="DRO' OR C*«"lEA' 
OR C$= B PUT- THEN K=!:GDSUB 
2480 



1250 IF C*=*W OR Dl='60 I' 

THEN K=l:GOSUB 2668 
1260 IF CJ='OUT" OR 0S='GO 0 
• THEN K=l sGDSUB 2730 
1270 IF C$='UP' OR B$="U" OR 

B$='60 U' THEN K=l:GOSUB 27 
90 

1280 IF C*='PHO' THEN K=l :PR 
INT'ts N3HAT NITH ?" 
1298 IF LISBON* OR B$='C : 0 
R DS='6D D' THEN K=1:60SUB 2 
830 

1300 IF C$='SEA" THEN K=l:BO 
SUB 2880 

1311 IF C$='LI6' THEN K=l:GO 
SUB 2928 

1320 IF CM"SQU" THEN K=l :GD 
SUB 2978 

1330 IF CJ='DIA" THEN K=l:GO 
SUB 3048 

1340 IF C$='DIG' THEN K=l:GO 
SUB 3158 

1350 IF C$='SHA" OR C$='BRE' 
THEN K=1:60SUB 3188 
1360 IF C*=-PUL' THEN K=l:GO 
SUB 3228 

1370 IF Ct="ATT' OR C$='KIL" 

THEN K=1:G0SUB 3318 
1388 IF C$='LOO' THEN K=l:PR 
INT'Is II CAN'T SEE ANYTHING 

SPECIAL" 

1398 IF C$="CUT' OR CJ='STA' 

THEN K.=1:60SUB 3348 
1488 IF C$='FIT" OR C$='INS' 

THEN K=1:60SUB 3398 
1418 IF C$='SEN' THEN K=l:GO 
SUB 3468 

1428 IF C*='CON" THEN K=l:60 
SUB 3588 

1438 IF C$='TAL' OR C*='SAY' 
THEN K=l:PRINT'ts U DON'T 
TALK TO NT SELF !' 
1448 IF C$='NAI" THEN^.=l:FO 
R X=l TO I000:NEU I 
1450 IF P!=24 AND AT=2 THEN 
GOSUB 3560 

1460 IF C$='EAT' THEN PRINT' 
Is IJ'N NOT HUNGRY AT THE NO 
!1ENT":K=1 

1478 IF C*=-DR1" THEN PRINT" 
Is I3'H NOT THIRSTY , ":K=I 
1488 IF 1BI='N' OR B*='6Q N' 
) AND SUPI,i)>0 THEN KMiPl 
=52(Pl 1 i; 

:4«0 IF <BJ='S' OR D$='GO S' 
I AND SI (PI, 21)8 THEN K»1:M 
=SHPI,2> 

:588 IF IB$='E' OR D$='60 E' 
» AND SI'PI,3)>0 THEN K»1:M 



«SX(M,3) 

1510 ! c ''B$='N" OR D$='G0 N" 
J AND SI(PI,4)>8 THEN K=1:PZ 
=SUPI,4i 

1528 IF K=8 AND IB*='N' OR B 
$='S' OR Bt="E" OR &$='*"» T 
HEN K=I:PRINT"ts 13 CAN'T' 
1530 IF C$='SNI' THEN K=1:PR 
INT'ts DION'T BE ABSURD" 
1548 IF C$='NAS" THEN K*l:Pft 
INT'Is DIDN'T BE fi SILLY BIL 
LY!" 

1550 IF C$="GET" OR C$='TAk' 
OR CI="GRA' THEN K=1:6QSUB 
1680 

1568 M=8:!F »2=A: THEN AI=1 
;578 !F K=0 THEN PRWEs ;3 
'N AFRAID Is H DON'T UNDERS 
TAND ¥ OU' 

1580 LOOP UNTIL (PI=24 AND A 

T=2, 

1590 GOSUB 3568 

1688 60SUB M5*» 

1618 IF LlOl IncN i-RINT'Ls 

13 DON T SEE A 'jLI;' HERE': 

SETURN 

1628 EI=8:F0R X=l TO 26 

1638 IF 8Z((,!)=P1 AND BUN* 

<R),1)=PI THEN EI=1 

1640 NEXT : IF EI=0 THEN PRINT 

■Is -I3ATBE ts 13 NEED GLASSE 

S, BUT Is 13 DON'T SEE IT':R 

ETURN 

1650 IF R=l THEN AA=1 
1660 IF R=2 THEN AB=1 
1670 IF R=3 AND AC=0 THEN AC 

=1 

1680 IF R=4 THEN AD=1 
1698 IF R=6 THEN AE=1 
1708 IF R=9 THEN AF=1 
1710 IF R=13 AND P2=8 AND AG 
=0 THEN AG=l:GOSUB 3I20:RETU 
RN 

1720 IF R=7 AND AH=I THEN AH 
=l:PRINT'Es A3 PANEL SLID AS 
IDE':SI(6,4)=15 
1738 IF R=26 THEN AI=1 
1740 IF R=8 THEN X$='Es IJTS 
HANDS CLANP AROUND NT THRDA 
T. Es Alls A1GGH":G05UB 2008 
1750 IF R=12 THEN PRINT'ts I 
IT'S LOCKED AROUND THE LEVER 
! ' :RETURN 

1760 IF R=ll THEN PRINT'Is D 
30N'T BE A FOOL":RETURN 
1770 IF R=15 AND AJ=0 THEN A 

J=l 

1780 IF R=17 AND AK=0 THEN A 

K=l 



1790 IF R=17 AND AK=2 THEN R 
ETURN 

1888 IF R=18 THEN AH=1 
1810 IF R=22 THEN AN=1 
1B20 IF R=19 THEN PRINT'Is I 
IT'S TOO HEAV":RETURN 
1830 IF R=20 THEN PRINT'Is I 
] CAN'T CARRY IT":RETURN 
1840 IF R=21 AND AN<3 THEN P 
RINT'Is 13 CAN'T DO THAT.... 
YET":RETURN 
1858 IF P=16 THEN AO=l 
I860 IF R=25 THEN AP=1 
1B70 IF R=23 AND AR=0 THEN A 
R=l 

1880 IF (R=21 AND AS=0) T HEN 
ASM 

1890 EI=0:FOR <=1 TO 5 

1900 IF V$U)=" THEN V*(D* 

B»tW(ft)):El=hI=tlU] 
1910 NEXT 

1920 IF EI=0 THEN PRINT'Is S 
10RRY..JY HANDS ARE FULL"! 

RETURN 
1938 BIlN2lR»,n=8 
1948 RETURN 

1950 i$=":FDR 1=1 TO LEN(Z$ 



1968 IF HIDHZ«,X,1»=' ' THE 
N L*=ftlBHT*tZ$ 1 (LEN(2«*-I>) : 
1=99 

1970 NEH:R=«:LZ=0:IF LEN(L* 

)<2 THEN RETURN 

1980 FOR 1=1 TO 26:IF LEFT* t 

N$U>,LEN(L$))=L$ THEN LI=1: 

R=X 

1990 NEH:RETURN 

2080 PR I NT ' t CLE AR ] I DONN 3 1 DON 

N3';X$ 

2010 PRINT' IDONNJIDONN1 IDONN 

1IRED3 Is 13 AN DEAD' 

2028 PR I NT" I DONN 1 1 DONN 3 [ DONN 

3 EBLUE3ERVSON3 ts NIOULD t 
OU LIKE ANOTHER GANE <Y/N> ? 

2838 GETKET A$ 

2840 IF A$='Y' OR A$='Es Y3" 

THEN RUN 
2050 IF A$='N" OR A$='Is N3' 

THEN PRINT'ECLEARlEs GJOODB 
YE. Es T1HANK YOU FOR PLAYIN 
G'.':END 
2068 GOTO 2030 
2070 PRINT'EPURPLElEs 13 AH 
CARRYING :-":F=8:F0R 1=1 TO 
5:IF V$tl)<>" THEN F=1:PRIN 
TV$ll> 

2080 NEXT : IF F=0 THEN PRINT' 
Es N30TH1NG AT ALL!" 



Plus/4 



299* RETURN 


RN 


2650 RETURN 


THAT ?":RETURN 


2109 605UB 1950 


2330 IF AN>1 THEN PRINT'ts I 


2668 IF PZ=13 AND AB<2 T HEN 


2930 IF AK1 THEN PRINT'ts I 


2111 IF PI=23 THEN PRINT" [s 


IT '5 ALREADY OPEN":RETURN 


PRINT'ts TIHE DOOR'S LOCKED 1 


1 HAVEN'T GOT A LlGHT":RETU 


TIHE SIGNPOST READS :-" 


2340 PRINT'ts 11 OPEN THE CO 


" : RE TURN 


RN 


2128 IF PI=23 THEN PRINT - [BL 


FFIN":G$(20)='A CORPSE" 


2670 IF PZ=13 THEN P1=7:RETU 


2940 PRINT'ts Ol.K" :AE=2 


ACWs Bits EHs Nils Alts R 


2350 G$U9)="AN OPEN COFFIN" 


RN 


2950 FOR I=! TO 5:IF V$iU=6 


Its EJ [s Olts Fl Is Tits HI 


:AN=2:RETURN 


2680 IF PZ=1 THEN PZ=4:RETUR 


$16) THEN W(I)*B»(6I* > (LIT 


[fi El ts Bits Oils 61 


2360 IF PI=B AND A6>0 THEN P 


N 


i':E$(6l=V$m 


2138 IF PZ=23 AND AJ=1 THEN 


RINT'ts Il'D ts Dlts Ills Al 


2690 IF PZ=25 THEN PZ=26:RET 


2960 NEHiRETURN 


PRINT'ts IJ THINK Is I] CAN 


ts L3 THE COMBINATION" :RETU 


URN 


2970 IF ADwl THEN PRINT'ts 


FOLLOW THE HAP':AJ=3 


RN 


2700 IF PZ=40 THEN PZ=39:RET 


13 HAVE NOTHING TO SQUEEZE": 


2140 IF P!=23 THEN RETURN 


2370 IF PZ<>13 THEN PRINT'ts 


URN 


RETURN 


2150 IF R=16 AND A0=1 THEN P 


N1DT HERE!':RETURN 


2710 IF PZ=32 THEN PZ=31:RET 


2980 IF AAO l THEN PRINT'SON 


RINT'ts T]HE DIART READS :-' 


2388 IF ABOl THEN PRINT'ts 


URN 


E DROPS OF LEMON JUICE FALL 


:60SUB 2220:RETURN 


11 NEED THE KEY":RETURN 


2720 PRINT'ts S10RRY":RETUR 


TO THE FLOOR ":RETURN 


2160 IF PZ=45 THEN H='A SUR 


23^0 PRINT'ts 01. [5 K1.":AB= 


N 


2990 IF AL=0 THEN AL=2880*IN 


GE OF POWER RUNS THROUGH IT 


2:RETURN 


2730 IF PZ=26 THEN PZ=25:RET 


T(RND(0)t2000J 


B0DT":80SUB 2008 


2400 GOSUB 1958 


URN 


3000 PRINT'SOHE JUICE FALLS 


2170 IF AAOl THEN PRINT'ts 


2410 IF LIOl THEN PRINT"ts 


2740 IF PZ=39 THEN PZ=40:RET 


ONTO THE NOTE AND A SECRE 


13 CAN'T DO THAT JUST YET':R 


11 DON'T SEE A ';L$ 


URN 


T MESSAGE APPEARS." 


ETURN 


2420 E=0:FOR 1=1 TO 5:IF V$( 


2750 IF PZ=31 THEN PZ=32:RET 


3010 PRINT'ts I1T READS :-' 


2180 PRINT'ts TIHE NOTE READ 


X>=GS (NZ <R) 1 THEN VJU)=":E 


URN 


3020 PRINT'tBLACKHs T10 OPE 


S !-" 


=1 


2760 IF PZ=4 THEN PZM :RET 


-w f— — _ r r - r T i ■ A. l 

N THE SAFE DIAL :-";AL 


2190 PRINT'ts TIHERE'S NOT H 


2430 NE XT ; I F E=0 THEN PRINT" 


URN 


3030 RETURN 


UCH POINT IN THAT":RETURN 


Is 11 DON'T HAVE IT":RETURN 


2770 IF PZ=7 THEN PZ=13:RET 


3040 IF PZ<>8 THEN PRINT'NOT 


2200 PRINT'tREDKs Olts Ells 


2440 BI(NZ(RI,1)=PZ 


URN 


HERE" :RETURN 


Sits Tits RKs Oils T) Is T 


2450 IF R=l THEN AA=8 


2780 PRINT'ts DION'T BE ABSU 


3050 IF AG<1 THEN PRINT'NOT 


Us Hits El Cs Nits Olts Nit 


2460 IF R=2 AND AB=1 THEN AB 


RD":RETURN 


YET":RETURN 


s Sits Tits Elts Rl' 


=0 


2790 IF PZ=41 THEN P2=42:RET 


3060 IF AL=0 THEN PRINT'ts I 


2210 RETURN 


2470 IF R=3 AND AC=1 THEN AC 


URN 


] DON'T KNDH THE COMBINATION 


2220 PRINT " [ BLACK] Es A1PR1L 


=8 


2800 IF PI=17 THEN Pl=lb:RET 


":RETURN 


1ST 1B95' 


2488 IF R=4 THEN AD=0 


URN 


3070 INPUT'ls N1HAT DO ts 11 


2230 PRINT'ts T1HE MONSTER H 


2490 IF R=6 THEN AE=0 


2810 IF PZ=7 T HEN PZ=8:RETUR 


DIAL ";6A 


UST BE DESTROYED!!' 


2580 IF R=9 THEN AF-0 


N 


3888 IF ALOBA THEN PRINT ts 


2248 PRINT'ts FUND THE ELEC 


2518 IF R=l» THEN U='ts T1H 


2820 PRINT'ts DION'T BE SHIP 


NJPONG COMBINATION" :RETURN 


TRODES AND BRING IT BACK TOL 


E BOTTLE BREAKS AND SPRAYS H 


ID":RETURN 


3090 PRINT Is TIHE SAFE OPEN 


IFE!' 


E WITH ACID":GOSUB 1190 


2830 IF PZ=42 AND AM(2 THEN 


S" 


2258 PRINT'ts Tits Hits Elts 


2520 IF R=26 THEN AI=0 


print-is Il'D need to dig a 


3180 G$115»='AN OLD MAP SHOW 


Nl ts Tits Alts Kits El [5 


2530 IF R=15 AND AJ=1 THEN A 


HOLE FIRST ":RETURN 


ING A SECRET PATH THROUGH TH 


IHs T3 Es Tits 01 ts Tits H 


J=0 


2840 IF PZ=42 THEN PZ=4!:RET 


E BOS' 


Its E3 ts Bits Olts S3'!'!': 


2540 IF R=17 AND AK=1 AND PZ 


URN 


3110 RETURN 


RETURN 


=34 THEN AK=2:SZ(34,3)=42:G0 


2850 IF PZ=16 THEN P1=17:RET 


3120 0H8)=Q$'6i* ts T1HEPE 


2260 IF PZ=41 THEN GOSUB 231 


SUB 2630:RETURN 


URN 


T f" ti F A F F' k 1 T 1 1 F hlhl 1 1 

IS A SAFE ON THE WALL 


*: RETURN 


2558 IF R=17 THEN AK=0 


2860 IF PZ=8 THEN PZ=7:RETUR 


3130 PRINT'ts TIHE PAINTING 


2270 IF PZ=8 AND AG>8 THEN P 


2568 IF R=18 AND AH=1 THEN A 


N 


hi | ■ u #— . r\ *. r t t*f f b 1 1 ■ i t kir r r t f* f* 

SWINGS ASIDE ON HIN6E5 TO R 


RINT'ts I I'D BETTER ts Bits 


M=8 


2870 PRINT'ts DION'T BE SILL 


EVEAL A SAFE." 


IHs Alts LI THE COMBINATION 


2570 IF R=22 AND AN=1 THEN A 


t!":RETURN 


3140 RETURN 


":RETURN 


N=8 


2880 IF PZO! THEN PRINT'ts 


3150 IF MK>] THEN PRINT'ts 


2280 IF PI013 THEN PRINT"ts 


2580 IF R=U THEN AO=0 


11 CAN'T SEE ANYTHING HERE" 


N1ITH MY BARE HANDS ^":«ETUR 


N10T HERE!":RETURN 


2590 IF R=25 THEN AP=0 


:RETURN 


N 


2290 IF AB<2 THEN PRINT'ts I 


2680 IF R=23 AND AR= 1 THEN A 


2890 IF AI=0 THEN PRINT'ts I 


3168 IF PZ<>42 THEN PRINT ts 


IT'S LOCKED ":RETURN 


R=8 


] SEE SOMETHING AMONGST THE 


TIHE GROUND S TOD HARD 1 :Rt 


2308 PRINT'ts 01. ts Kl.':SZt 


2610 IF R=21 AND ASM THEN A 


RUBBISH" 


TURN 


13,1)=7:RETURN 


S=8 


2900 IF AI=8 THEN 6$(26>='A 


3178 PRINT'ts 11 DIG DOWN TO 


2310 IF P104J THEN PRINT'ts 


2620 RETURN 


BOX OF HATCHES" :AI=1:RETURN 


THE COFFIN" :AH=2:RETURN 


1 1 f a hi / T nn that urnr t ■ .rii"T 

11 CAN T DO THAT HERE ' :Rti 


iojc rruni 15 1 Jnc HULr tHla 


lilt rKlNl Is 1 JHtKfc b NUIH1 


JldV lr Hr\/I men mini is 


URN 


IT AND RUNS ANAY" 


NG ELSE HERE":RETURN 


W1HAT HITH..?":RETUMI 


2320 IF AN<1 THEN PRINT'ts I 


2640 6$U7)='S0NE CRUHBS':N$ 


2920 IF AE<1 THEN PRINT'ts H 


3190 IF PZ<>22 THEN PRINT'ts 


) HAVE NO SCREWDRIVER! ':RETU 


U7t="CRUHBS' 


JON AN ts 11 SUPPOSED TO DO 


N10T HERE":RETURN 



3288 IF N<] THEN AQ=i:PftINT 
■Is T]HAT'S DOME THE TRICK!" 
:G$U2>='A BROKEN PADLOCK" 
3218 RETURN 

3221 IF PI=22 AND AQ<1 THEN 
PRINT'ls HT'S LOCKED" :RETU 
RN 

3238 IF P2=22 AND AR<2 THEN 
PRINT'ts U HAVEN'T CONNECTE 
D THE ELECTRODES IET! - :RETUR 
N 

3248 IF PZ=22 AND AS<2 THEN 
PRINT'ts U HAVEN'T FOUND A 
HEN HEART TET" :RETURN 
3258 IF PI=22 AND AC<3 THEN 
PRINT'ts HOI HAVE TO SEN I 
T UP FIRST !":RETURN 
3268 IF P2=22 THEN AT=1 :PRIN 
T'ts T)HE MONSTER CONES TO L 
IFE. . .•:S*<B)= - AH EVIL rtONST 
EH' 

3278 IF PI=22 THEN RETURN 
3288 IF Pl=45 AND AU=8 THEN 



PRINT'ls SJOHETHING HAPPENED 
■:S2(45,2)=46:AU=1:RETURN 
3298 IF PI=45 THEN X$='A SUR 
BE OF PDHER FLONS THROUGH HI 
BODT':GOSUB 2898 
3388 PRINT'ts THERE'S NOT H 
UCH POINT IN THAT":RETURN 
3318 IF Pl=19 THEN Jf='ts T3 
HE MONSTER'S HANDS GRAB NT T 
HR0AT':60SUB 2888 
3328 IF PI=34 THEN H=Ms T3 
HE WOLF ATTACKS nE'iGOSUB 28 
88 

3338 PRINT'ts II SEE NO POIN 
T IN VIOLENCE HERE" :RETURN 
3348 IF PI<>41 THEN PRINT'ts 
N]OT HERE 1 ' :RETURN 
3358 IF AFOl THEN PRINT'ts 
N3HAT WITH ? ':RETURN 
3368 ^ AN=3 THEN RE T URN 
3378 AN=3:PRINT'[s IJ'LL HAV 
E TO CLOSE NT EYES TO DO THI 
5!" 



3388 G$I28!='A MUTILATED COR 
FSE':6$i2n='A FRESH HEART': 
RETURN 

3398 IF WOW THEN PRINT'ts 
H CAN'T DO THAT HERE'" :RET 
URN 

3488 IF AS=2 THEN RETURN 
3418 IF AS=8 THEN PRINT'ts N 
JO HEART ":RETURN 
3428 PRINT'ts U FIT THE HEA 

RT..ts U'U NEED T 0 SE** IT 
UP NOW ' " 

3438 B*(8>=B*18>*" iNlTH A 
NEN HEART)' 

3448 FOR (=1 TD 5slF Wtl)«fi 
$(21) THEN 

3458 NEXT :AS=2 :RETURN 
3468 IF AC<1 THEN PRINT'ts I 
] HAVE NO THREAD' ':RE T :PN 
3*78 IF AC=3 THEN RETURN' 
3488 IF AS<2 THEN PRINT'ts I 
3 HAVEN'T FITTED THE HEART T 
ET":RETURN 



249* AC=3:PRINT'ts QMS K). 

ts I] SEN IT UP'iftETURN 
35M IF WOW THEN PRINT'ts 

KjHAT AN ABSURD IDEA":RETU 
RN 

3518 IF AR'.I THEN PRINT'ts H 
]DN n " :RETURN 

3528 IF AR=2 THEN PRINT'ts T 
]HE MONSTER IS ALREADY CONNE 
CTED":RETURN 

3538 PRINT'ts 03. ts K3. Is I 
] CONNECT THE ELECTRODES TO 
THE MONSTER" 

3548 AR=2:F0R K=l TO 5:IF V$ 
(I»=fi$(23) THEN VIUI=" 
3558 NEIT:RETURN 
3568 PR I NT ' [ CLE AR ] t DONN 3 1 DON 
NKD0NN3ts T3HE MONSTER SINK 
S INTO THE PEAT BOG.' 
3578 PR I N T ' t DONN J I DONN 3 [ DONN 
3lBLACK3ts N3ELL ts D30NE. I 
s riOU HAVE SOLVED THIS 
ADVENTURE.' ■ 



TAPE BACK-UP DEVICES FOR CBM 64, 128, VIC 20 



^;%0«.-MM M «TW00»T*«TT..O«.»U0.O«CO«t.« ..- «•.» 

c~iv v, qoj hi* Duii-m WxxKpoa**' ID" audit"* fl*U -no*"liy 



** NEW * * THE EXPERT CARTRIDGE, 
TAPE TO DISK & DISK TO DISK SYSTEM 



, n ^tEZESANO 'RANSFEBS ALMOST WLPHOGRAMSAI THE PRESS OFAByTlOM. 



C1 28 80 COLUMN CONVERTERS & LEADS 



55l£o*l*NCOlUMNMOfK":HnC*«l»OAPIOOFOOIV. CM.tS 
C.ieiOCOLUMNLEAOS/ADAPTORS-ALLALSOmCLUDCCONNECTIONFOHSOUND 

l o id* « n d Ad.plor . m.d. to-o-d.. (o. Oth.. monitor. - — at**!- PL— 



BU 64 ft SPECTRUM REPAIRS- PLEAS* TMFHONI FOR DETAILS 
ft COMPETITIVE PRICES 



FREE CATALOGUE SENT UPON RECEIPT OF LARGE SAE (17p .t-mpi 
<,i, FAST MAIL-OfiDER SERVICE <ris 
ft* ALL MUCSS INCLUDE VAT A PO«TAOI 6* 

Pavmert bv cheque, postal of bet. cash. Transcash (pay al any posl office, by quoting 
¥ ™7a« no650^ your name and address and wh.cn terns you require) 

EXPORT: Please add CI e««a. paymenl tn sterling only pltSM 
MAILORDERS TOi M HOLME LANE. BRADFORD BOA OQ* 

CALLERS WELCOME AT 329 TOMQ STREET, 
■RADFORD 1D4 SQY IQ274) SSA2SS 



TRILOGIC 



* FREE SOFTWARE * FREE 15 MONTHS MEMBERSHIP * 

A qteat new home computer club now under way" Savings on soflwa re and 
hooks from 25% & up lo 40% oil R.R.P. originals only. Your never 
Emitted Tlo any makes of soflware or books nor are you committed lo 
Every ,wo months you get a software update. »otya« and game 
nlavnq tips Savings on hardware from 15% and up to 30% off R.R .P. not 
fusTiovSs but a wide range of peripherals for your computer Normally 
Soersh-p ?,s £1 5 for 1 2 months Bui for a limited per^d<^ly membership 
>s FREE for 15 months when you buy a program listed below with a RRPo 
£7 95 or more through us Choose one of the en^^P^JJ" g u ' 
Iree bi-monthly software. Our club is designed for all Commodore 64 & 
128s 



COMMODORE 64 * 

ELITE (0) 

ACE 

SKYFOX <D) 

HARD BALL (D) . 
hEVS(D) 

uridium |d| 

nightshade 

spitfire 40 101 ... 
bouncers 

MERCENARY (D) 
TIME TUNNEL (D) 
ARC Of YESOO ... 



128 
£14.95 
£10.95 
I 9.95 
£ 9 95 
£14.95 
C 8 95 
£ 9.95 
f 9.85 
£ 9 « 
£ 9.95 
£ 9.95 
£ 8.95 



RACK TO 'HE 

FUTURE 

PARADROID 

QUAKE MINUS 1 

DEATHWAKE 

NODES OF YESOD 
MAX HEADROOM 
YIE AR KUNG FU . 
LORD Of THE 

RINGS (D) 

FRANK BRUNO'S 

B. ID) 



£ 9 95 

£ 7.95 

£ 9.95 

£ 7.96 

£ 9.95 

E 9.95 

£ 8.95 

£15 95 

£ 8.95 



ROCK ft WRESTLE 

(0) 

THE EIDOLON (Dl 
B McGUlGAN'S 

wee (Di 

WINTER GAMES (Dl 
KUNG FU MASTER 

(Dl 

THE WOF EXPING 



F (D| . . 
FIGHTER PILOT (D) 
CRITICAL MASS 



£ 9.95 
£ 9.99 

£ 9.99 
.1 9 99 

£ 9.95 

£ 9.95 
£ 9.95 
£ 8.95 



one of tbe 



One of these Master! ronic games is FREE when you buy 

above programs *KANE * LAST V8* 

• ONE MAN A HIS DROID * ACTION BIKER • KIK START* 

Who said anything about you don't have a choice In s oftware'' 
• BUSINESS - UTILITIES - EDUCATION - ARCADE" 
•ADVFNTUHE - ARCADE ADVENTURE - SIMULATION • STRATEGY. 

These are ( ust a lew hardware prices which are exclusive to our club 

members: 



COMMODORE MPS 801 -SEIKO 

WATCH £, *2-!S 

COMMODORE MPS 1000 PMNTERUIl 50 

STAG SG IOC PRINTER £214.95 

BROTHEH HAS PRINIt" £ 



COMMODORE DPS "01 £189.95 

COMMODORE 1570 £169 25 

COMMODORE 1900C £254.95 

COMMODORE 190OM £ 84 95 

COMMODORE 1701 £169.95 

COMMODORE 1541 • SEIKO 

WATCN £169.95 

Our complete price list is much bigger than this, for any inquiries that you 
may have please ring (0376) 45639 24Hr serv.ee (it's much quicker than 

writing). 

Please make cheques /postal orders payable to T. L DAVIS. 

All priced items includeVstage & packing except harowareUems below 
£100. also are correct when going to press. {D) means the program is also 
available on disk. Please ring for disc prices 

Post to: THE T. L. DAVIS HOME COMPUTER CLUB, 
286 WOODBRIDGE ROAD. 
IPSWICH, SUFFOLK IP4 20 U 




41 



bouts 0>on 
points 



2? 




THERE HAS BEEN A LARGE 
number of 'fighting' 
programs appearing over 
recenl months, we've had 
kung-fu. wrestling and shoot- 
ing. Now Beyond has brought 
out a game that combines the 
elements of a 'fighting' game 
with those that expect you to 
get a ball in the goal, as in 
football. 

You find your player in an 
arena, you at one side and 
your opponent at the other. 
Both players are tied to the 
wall behind them by a length 
of elastic, and are armed with 
some sort of scoop with 
which you can try to catch the 
ball that is flying around the 



Points are awarded for 
getting the ball in the net, 
which is situated at the top of 
the screen or for knocking 
your opponent over. 

What makes this game so 
much fun is watching your 
players floundering on the 
floor being dragged along bv 
the elastic and seeing them 
being knocked senseless by 
the walls at either end. 

There really isn't a lot 
more that can be said about 
this game apart from the fact 
that the idea is extremely 
original and that Beyond has 
created a game that is great 
fun to plav. 

S.C. 



screen. 



ONE OF THE BLOODIEST 
battles in the Second World 
War was the attempt by the 
US Marines to regain the 
island of Iwo lima from the 
t a p a n e s e . John Wayne 
managed it. Now, thanks to 
the title in the PSS Wargames 
Series, you too can see if you 
have a flair for tactics. 

You have between 32 and 
36 turns to eliminate all the 
Japanese forces from the 
island depending on which of 
the five skill levels you select. 
Tactics must be selected care- 
fully as both all out attack and 
solid defence are likely to 
meet with failure. Whilst you 
receive re -infor cements 
(weather permitting), the 



Japanese don't and so tend to 
launch suicide attacks when a 
unit is close to being wiped 
out. 

The game is controlled 
entirely via a joystick using it 
to select from your various 
units and determine their 
options from assorted menus. 
These options include land- 
ing on one of the six beaches, 
move, attack or pass. 
Each unit has aggression and 
defensive factors, a move- 
ment allowance andacombat 
range. 

Iwo |ima is a very user 
friendly wargame and I found 
it more challenging to play 
lhan its sister game Falklands 
82. G.R.H. 




IN THE DIM AND DISTANT 
past the only video game 
available was a crude table 
tennis simulation called Ping 
Pong. Do not confuse it with 
this little pearl from Imagine. 

The opening streen is 
typical Japanese cuteness 
where a ping-pong ball 
bounces out Konami's name 
and then bounces down on to 
the head of an unsuspecting 
mole. After selecting the level 
of play the next bold graphic 
display shows the view of the* 
table from the human player's 
end with an audience just off 
in the wings. At eat h end of 
the table is a disembodied 
hand grasping a bat. 



During play the bais 
follow the path of the ball 
automatically and the only 
control that you need worry 
about is the kind of stroke to 
play. 

Occasionally a stroke will 
result in a 'floater', a weak 
shot which suggests a 
superfast smash as a reply. In 
the lower levels this is no 
problem but as you progress 
through the levels, the game 
gets faster and faster and 
relies more on reflex action 
just like the real thing. 

The only qualms about 
this excellent conversion is 
the lasting appeal of the 
game. £ D 



ACTION E P L A v 



Or>q>n>l>lv PUyabliitv Graptwc» value If 

Man** 




DURING THE CURRENT 
burst of interest in the C-16/ 
Plus/4 market a lot of C-64 
games are gaining a new lease 
of life. Skyhawk resembles 
Virgin Games' Falcon Patrol 
which has long been a 
favourite of mine. 



for approaching bombers. 

At first each wave consists 
of two planes but this gradu- 
ally increases to four as the 
game progresses. 

Unlike Falcon Patrol, the 
jet cannot descend into the 3D 
scrolling landscape. This 
m^kpi; rpfnplline less hazard- 




advanced VTOL fighter it is 
your job to see off the enemy 
bombers which are devastat- 
ing the countryside. Fuel and 
air-to-air missiles (AAMs) 
must be monitored carefully 
during each battle and should 
the need for re-equipping 
your fighter arise you will 
have to be fast and careful 
and keep an eye on the radar 



ous, but still tricky, because 
the plane cannot crash unless 
it collides with a bomber. 

Skyhawk is a game of 
survival. The bombers keep 
coming until you have run 
out of jets or fuel after all of 
the refuelling platforms have 
been destroyed. Cheap, 
cheerful and quite addictive. 

E.D. 



I 




AIR ATTACKS FROM AIR- seascape is gradually un- 

craft carriers can best be furled, but this is no tourist 

stopped by sinking the float- trip because soon the enemy 

ing airstrip which harbours is there in front of you. 
the planes. Sound logic but The first day is easy 

not as easy as it seems. First pickings because most of the 

you have to battle through planes are flying in the same 

the waves of fighters which direction asyourself but more 

protect the ship. This is your slowly. Taken by surprise, the 

mission in Bandits at Zero and pilots rarely fire back and the 

it is quite a challenge. only real problem is your own 

The game starts with your skill at avoiding collisions 

solo fighter-bomber flying with them. A cautious eye 

low over the sea searching for should be kept on the radar 

the enemy. First there is an screen for the occasional 

encounter with a refuelling attacking plane which zeros 

plane to top up your tanks in on you from the opposite 

ready for the long day ahead direction at high speed. If a 

but soon your radar display collision occurs you lose one 

becomes live with tiny blips of your seven protective 

which denote the enemy shields. 

fighters ahead. As the plane After this leisurely cruise 

flies to join combat the screen across the rolling seascape, 

scrolls smoothly as a coatline night gradually falls (nice use 



of colour as the daylight Before long you begin to 

gradually fades). By now your wish that day three had not 

fuel is critically low but there dawned and regret that it 

is help at hand as you rendez- did. 

vous with the tanker once Graphically, the game 

more. Tricky business, this appears a lot more sophisti- 

aerial refuelling lark. Altitude cated than it actually is and in 

and speed are critical as the comparison to many other C- 

umbilical cord isattached and 16 games it shows what a 

if you take too long dawn will thoughtful programmer can 

break and the tanker will do within the cramped 

zoom off to safety. Enemy memory confines of the 

attacks are few at night but machine. Adding an extra 

occasionally a fighter will problem to deal with as each 

appear. The best policy is screen goes by, helps to stave 

prayer. Fuel is more off the boredom of a straight 

important than fighting so forward shoot-em-up. 

with a little bit of Divine inter- The only really weak point 

vention and a gritting of your of the game is the music 

teeth as you bite the cord, the which is mournful and un- 

night will pass without the imaginative. It only appears at 

loss of another shield and the the end of each day so I won't 

sun will come up on a freshly complain too loudly, 

refuelled jet eager for Ammunition supplies are 

another day's action. reminiscent of a cowboy's six- 

The new day brings with it gun in the old silent movie 

a new breed of pilot, the rear days, bullets are unlimited, 

guns blaze in your face and In this way the 

their rockets spit out at you if temptation to fly with trigger 

they get behind your plane. finger down would have to be 

More jets appear to be flying curbed in favour of accurate 

towards you at high velocity and thoughtful gunneryskills. 

and your shield count is in Don't allow these criti- 

danger. Night seems a long cisms to draw you away from 

way off as you fly on towards the fact that this is a superb 

your target across the never- game worth every penny of 

ending sea. your hard earned cash. If 

Another nocturnal re- things do get a little dull you 

fuelling finds you closer still can sweep your jet back and 

to your target. This is forth across the skies, 

indicated by the fleet of In this way the program 

battleships which are sending commits more enemy planes 

up a battery of shells. Still the into flying towards you at a 

enemy planes attack and the high rate of knots increasing 

tiny black flecks of flak your problems three-fold, 

threaten to blot out the sun. J.G. 



ACTION E P L A V - S~ v 

Ma«»i 



fHE SNOW 




IN DECEMBER 1944 HITLER'S The weather conditions of 
army was being driven back those fateful days of long ago 
towards the Fatherland and a are faithfully reproduced 
major counter offensive was during the game, deter- 
needed to drive the allies mining whether your air- 
away from the Rhine. The borne supplies can be flown 
conflict that ensued became in or not. Being Northern 
known as the Battle of the Europe in the dead of winter. 
Bulge and marked the you soon learn to take ad- 
beginning of the end of vantage of the few clear days 
World War II. that occur. Supply level 

A major part in the offen- affects the fighting strength of 

sive was played by the Panzer your units and can become a 

Tank Divisions of the German crucial factor in your success, 
army. These powerful tanks The situation at the be- 

had earned themselves the ginning of the game is thai the 

nickname of 'tigers', hence Allied Forces are represented 

the title of this simulation. by greenhorn American 

As in the real battle the troops against a very experi- 

action begins on 16 enced and strong German 

December and ends on 27 army. The initial aim of the 

December. Players can take Allies is to hold back the on- 

charge of each army or the slaught until reinforcements 

computer will play the role of arrive. For the Germans it is to 

the enemy. break through and cross the 

River Meuse, taking the 



major towns of Bastogne, if any, and live to fight 

Marche and Rocheforl on the another day. The longer a unit 

way for maximum'points. The survives the greater the 

eventual aim of the Allies is to number of combat ponts that 

breakthrough to the East. are awarded at the end of 

Each day is broken down each day. A unit with fewer 

intoasequenceoffivemoves. than 25 points is in serious 

Firstly the Germans alter their trouble and must rely on 

positions and enter into such plenty of movement points to 

skirmishes as these moves pull back out of harm's way 

allow. Next it is the Allies turn while they recover. This I 

to do the same. After this, re- learned from bitter experi- 

inforcements are placed on ence! 

the map and Victory Status is Extra combat points can 

assessed to see if the game be awarded if you chose to 

can continue. Finally, you are include an artillery barrage 

given the option to save the with your attack. Each day you 

game before the next day have a number of artillery 

dawns. points awarded and you are 

The result of a battle is given the option of using a 
determined principally on limited amount of fire power 
the relative strength of the to shore up a flagging unit, 
units involved and the The documentation which 
strategy chosen for attach and accompanies the game is 
defence. If the result of a extensive but confusing. A 
battle is a dramatic win, the map of the whole area is also 
victorious unit may advance supplied but I found it to be 
three squares and attack confusing. Locating my start- 
again later that day. Defeated ing position took a while and 
forces may retreat if there are this wasn't helped by the key 
any combat points left. Some- being some distance from the 
times this will overtax an map itself, 
undersupplied unit and they Eventually, I struggled 
will be wiped out. through the documentation 

Attack strategy can be a and found that the best way to 
major offensive, a medium learn is through experience. I 
battle, a light skirmish or a fought long and hard but I 
gnat bite of a reconnaissance regret to say that if it had been 
mission. In defence you may left up to me we'd all be sing- 
chose to counter-attack, try ing German folk songs by 
to hold your position, with- now! This is an enjoyable 
draw or try delaying tactics, simulation but this battle is 
Choosing the correct re- popular for computer 
sponse to your opponents strategy games and I have 
strategy is the aim so that you seen better in my time, 
will lose fewer combat points, E.D. 



YES, IT'S YET ANOTHER 
flight simulator! This one sees 
you in charge of a jei fighter 
defending your island from 
the enemy planes. Their 
target is the nuclear power 
plant and it is vital that you 
intercept their bombers 
before they reach their 
destination. 

The screen display is in 
two halves, the top window 
showing the view from your 
cockpit whilst the bottom 
part of the screen contains 
your instruments. These 
include a radar, compass, 
several guages and warning 
indicators and a scrolling map 
of part of the island. A full 
screen map of the entire 



island can be called up at the 
press of a button. 

Although the instruments 
look complicated, controlling 
your plane is very simple. You 
can attack an enemy plane with 
either cannon or missile, but 
you have finite supplies of 
both. You also get the chance 
to refuel in mid-air providing 
that certain conditions are 
met. 

Wing Commander was 
written back in 1984 and is 
beginning to look a bit dated 
now but if you want to try a 
cheap flight simulator before 
splashing out on a more 
sophisticated model, it could 
be just the thing you are look- 
ing for. G.H. 




ACTION 



E P 



a 



ling Unitt 



Pleasure Doiet 
iPlock 3t 



282 Fuel Dump 

5 00 Power Planx 

GC Pleasure Dm 

Z Crew Quartei 



PRODUCING COMPI- 
lation tapes for charity 
organisations is becoming 
popular. Off The Hook is yet 
another and all proceeds 
from the tape are going to the 
Prinnce's Trust for the re- 
habilitation of drug addicts. 

It is very difficult to 
comment on a tape that is 
being sold for charily as you 
obviously want the people 
involved to sell as many tapes 
as possible. Thankfully in the 
case of Off The Hook the 10 
programs included are all of a 
fairly high quality. 

Programs included on the 
tape are the second of Act- 
ivisions programs featuring 
Pitfall Harry and isgreat fun to 
play. Harry is trying to rescue 
his niece - makes a change 
from Princess - while 
avoiding the many dangers 
on his way such as scorpions. 



giant frogs and electric 
eels. This game kept me 
occupied for a long time, 
never dies may have 
something to do with this! 

Next on the cassette is 
Space Pilot 2 from Activision. 
This game offers nothing out 
of the ordinary and looks a 
little dated. Nevertheless 
flying your space ship over a 
scrolling backdrop and 
shooting enemy ships is still 
great fun. 

Probably the largest and 
most complex game on this 
cassette is Psytron from 
Beyond. When this game was 
launched on the Spectrum 
around two years ago I didn't 
get anywhere with it and I've 
not improved in those two 
years. You are in charge of the 
Betula 5 installation and must 
defend it against enemy 
invaders. This means that you 



must shoot them out of the 
skies, goafterany that gel into 
your buildings and see lo any 
repairs that your complex 
needs. Psytron is a very com- 
plex game - the fact thai the 
instructions take up more 
space than all of the other 
games on the cassette put 
together shows this. 

Fall Guy from Elite allows 
you to play thai famous TV 
character Colt Seavers the 
stunt man. Your job is to 
perform all the stunts set in as 
little time as possible. 
Nothing really exciting here 
but well worth loading in for a 
quick half hour. 

Demons of Topaz from 
Firebird places you on the 
asteroid Topaz. Your aim is to 
find the sacred crystals that 
are scaiiered around the 
many levels of the asteroid. 
Yes you've guessed it. 
Demons of Topaz is a plat- 
form game. It is however 
quite well produced and is 
good fun to play. 

Sheep in Space from 
Llamasofl should need no 
introduction. But, jusl in case 
you've never heard of it, it's a 
liitle similar to a Defender 
game, but in ihis case there's 
no one to rescue and you 
must kill all of the Hostiles 
before they can blow up your 
planet. Oh by the way, you 
aren't given a spaceship, this 
time you are an intergalactic 
sheep. 

Kong Strikes Back from 
Ocean is probably the most 



disappointing game on the 
cassette. Mind you, when you 
think of the price it's not all 
that bad. In this game you 
must guide your man up the 
fairground track to rescue 
your damsel in distress. Of 
course there are objects for 
you to avoid on your way up 
such as roller coaster cars and 
springs. 

Black Thunder from 
Quicksilva finds you charg- 
ing along a number of roads 
shooting evrything in sight. 
An extremely fast game and 
great fun to play. 

Death Star Interceptor 
from System 3 is the penul- 
timate game on the cassette. 
This game finds you once 
again in control of a space- 
ship trying to save the galaxy. 
Again nothing out of the 
ordinary is offered but if you 
are into zapping aliens then 
you'll probably enjoy it. 

Bringing up the rear is 
Talledega, and that's exactly 
what I did in this racing game, 
and this one offers nothing 
out of the ordinary though it 
is great fun to play. 

When you consider the 
amount of money that is 
being asked for this cassette 
and then work out how much 
is being asked for each game 
it's impossible to complain. 

Even if there are only a 
couple of games on the 
cassette that you haven't 
already got then its still worth 
the asking price. Go out and 
buy it NOW. S.C. 




SCORE 

. . Mfieic . . 



ii u 




ANYONE WHO DEFEATED 
the evil pumpkin in the 
original Cauldron now has the 
chance to turn the tables. The 
Witc h Queen is in charge of a 
wholly evil regime. The only 
person who can. put things 
right again is you - a brave 
pumpkin warrior! 

Cauldron II is a sort ot 
platform game but instead of 
jumping, you bounce and this 
is likely to take you sometime 
to get used to as our hero 
rebounds off walk like a ball 
bearing on a pin table. Start- 
ing in one of several 
randomly chosen locations, 
you must collect assorted 
objects before you can 
depose the queen. These 



include crown, scissors and 
axe. There are various nasties 
trying lo stop you and collid- 
ing with these depletes your 
energy. You can however 
pick up glowing spheres 
which both replenishes your 
energy and allows you lo fight 
back by hurling these spheres 
at your enemies. 

The graphics are good and 
amusing with some lovely 
touches such as when a gar- 
goyle lips you off a platform 
into open space. But I would 
have preferred it if every- 
thing scrolled instead of 
jumping from screen to 
screen - you are never quile 
sure what nasties lie in wail 
tor you. G.H. 



ACTION R e p l A J, £ & 

» ■ ■ ■ » * Onq.n.-.hly Piayabllil, Graphic* Valuo For 

Money 



COUNTDOWN TO MELTDOWN 

Mastertronic MAD Range £2.99 Joystick required 




AFTER AN EXPLOSION IN A 
nuclear power plant, the 
central core is overheating 
and there is a considerable 
danger of a second blast. Your 
task is to dampen down the 
reactor rods using a team of 
remote controlled android 
commandos. 

You have eight robots to 
manipulate, each with a dif- 
ferent set of skills and must 
guide them through the 2000 
rooms on eight levels as you 
try to reach the core in time. 
There are assorted intruders 
that must be disposed of 
before they sap your strength 
and mobility etc and render 



until he can be repaired by 
one of his companions. 

Moving the robots and 
firing is via the joystick but 
there are also several key- 
board commands for using 
the objects that you have 
found. The graphics are fairly 
simplistic - 3D views of the 
rooms with exits and nasties 
shown but you can switch 
between views to show the 
doors more clearly. 

Countdown is an interest- 
ing game that will keep you 
quiet for ages - you can save 
your current position. If you 
enjoy large scale mapping 
games, this is good value for 
monev. C.H. 



SPACE PILOT 

Anco/Kingsoft C-16 ♦ Joystick £5.95 



3 2 




SPACE PILOT STYLE GAMES 
have been with us for many 
years but this is the first that I 
have seen for the C-16. 

The game is one of survival 
as you roam the galaxy facing 
the attacks of innumerable 
alien craft. Flying singly or in 
formation these demons are 
armed with heat-seeking 
missiles which will attemp to 
snuggle up close to your ship, 
vapourising you astheydoso. 

The background of stars 
scroll with a beautiful 3D 
effect in every conceivable 
direction but this is where the 
price of sophistication must 
be paid. All this activity 
results in a dpfldcninp t>H&rt 



SOLO 

Bug-Byte C-16 + Joystick £2.95 



on the spaceship's movement 
lessening the excitement 
which the gameply has to 
offer. 

It is also noticeable that 
the complexity of the angled 
scroll is slower than the 
simpler vertical or horizontal 
scroll but I will accept this as a 
game 'feature'. 

I do feel that the game is 
playable and certainly stunn- 
ing. Each of the four waves of 
aliens are armed with missiles 
which behave in their own 
characteristic way. 

To use a cliche, this is a 
flawed masterpiece. E.D. 




PROGRAMMER STEVEN 
Kellett's name keeps cropp- 
ing up on C-16 games. He 
specialises in unsophiscti- 
cated shoot-em-ups which 
rely purely on fast reflexes for 
survival. 

This time he appears on 
the Bug-Byte label with a 
typical product of his en- 
deavours which provides 
mayhem with a storyline. 

Solo is the fighter you 
control in your battle against 
the aliens who appear in 
droves to annihilate you. The 
action is swift as they hurl 
everything at you in their 
venomous attack. Solo can 
move in any direction on the 
screen. 



At the beginning your 
craft sits on the bottom 
border but you'd be fool- 
hardy to sit there too long. In 
a matter of seconds the 
screen explodes into frenzied 
activity and a second wave of 
attack will start before you 
have wiped out the first. 

There are 10 waves of 
terror to test your staying 
power and I suspect that 
survival through all of them is 
impossible unless you have 
nerves of steel and reflexes 
honed to superhuman effi- 
ciency. 

Lovers of unpretentious 
zapping games will love this. 

F.D. 



AATIAM P F P I A V f 1 E I) 

^^^^^ 1 l^^^l^l ' * * ■ * * Onginjhl, playflbMtv G.-.ph,cS V^IUP For 



THE CHIP FACTORY 

Supersoft C-16 + Joystick £6.95 



i 3 





37? 




HOCUS FOCUS 

Quicksilva £8.95 Joystick optional C64 



KNIGHTS OF THE DESERT 

US Gold/SSI £9.95 cassette, £14.95 disk CM 



CHARLIE IS A TRAINEE 
accountant who sneaks into 
the chip manufacturing plant 
to try his skill at production. 
Bugs, sparks and the odd 
spanner in the works run 
rampant at night and it is up to 
you to guide the lad around 
the screen to produce his 
microchips. 

This is a platform game 
and a conveyor belt runs 
along the bottom of the 
screen. On the conveyor are 
sockets and Charlie has to 
drop the chips from level to 
level so that they fall into an 
empty place on the belt. 
When all of the places on the 



to the switch at the top of the 
screen to wind the belt on. 

The nasties also wander 
around the platforms and 
contact with them can be 
fatal. 

Completely filling a 
conveyor belt allows Charlie 
to move on to a new produc- 
tion line and further 
problems. 

The graphics could be 
more imaginative but this 
does not affect the game too 
much. The action is certainly 
frantic and the planning of 
your next move is frequently 
thwarted by the numerous 
nasties. Simple but effective. 

J.C. 



5 jj& 




JEREMY IS A YOP PHOTO- 
grapher working for the Daily 
Shocker and is given the 
assignment of taking pictures 
of the Potty Professor's 
inventions in his hidden lab. 
The whole cave system is 
radioactive and protected by 
genetic mutants who are 
intent on stealing your film 
and sword - your one means 
of protecting yourself. 

The parts of the inventions 
are hidden in assorted objects 
which must be searched 
before you can take a picture 
of them. Some objects 
contain ghostlike figures that 
again steal your film. When 
you have some pictures ready 



to develop, you can make 
your way back to the start 
where you get the chance to 
place the pictures on to a 
large grid. 

Moving Jeremy is a simple 
left, right and jump although 
there are several other 
functions which are icon 
driven. These are: examinean 
object, take a photo, pick up 
or switch on an object and 
fight. 

Icons are supposed to 
make things easier to mani- 
pulate, but they just don't 
work here. 



C.H. 



5 JL 4 s£ 5 i, 




DESPITE THE FACT THAT HE 

was on the "other side" 
during the Second World 
War, Rommel was renowed 
and respected for being a 
decent fellow and a brilliant 
commander. It was only the 
fact that the British, under 
Montgomery, had cracked 
the German codes and so 
knew every move that he was 
going to make, that led to his 
ultimate defeat in North 
Africa. 

The first thing to be said is 
that this is an incredibly 
complex wargame and would 
be best suited to someone 
with a fair amount of ex- 
perience or a lot of patience. 
Players take it in turn to rein- 



force, supply, move and fighf 
as the Germans attempt to 
take Alexandria whilst 
defending their main base of 
El Agheila. 

The game is played on a 
hex grid that whilst not 
exactly graphically stunning, 
is perfectly adequate. The 
instructions are long and 
complex (a book would have 
been better than the huge 
closely printed sheet) and the 
gameplay is hardly user- 
friendly. But, if you enjoy 
wargames or are interested in 
the historical aspects, there is 
an awful lot here to keep you 
occupied. 

G.H. 



COMMODORE 64 

EVER HAD A LOADING PROBLEM? 

Then send off lor WIZARD'S TAPE HEAD ALIGNMENT KIT - No one should Be without 
on* 

The most common cause of loading failure Is bad alignment of you' tape Meads This Ml 
allows you to Ml up the tape heads of your cassette unit fc the best possible loading 
conditions, in many cases this will make a remarMible difference in loading reliability. 
Our kit comprlaa* Of: 

(1) A precisron recorded cassette containing asophisticated test program (2) A special 
adiustment screwdriver (3) A direction inrJicetot (4) A turning meter (5) A detailed 
msiruction booklet with diagrams (6) A Loading Doctor - lo help you diagnose any 
loading problems All of this for only £6.95"' 

COPY KING - PLUS 

* Revolutionary new copier for FAST LOADING programs • FREE this month a suite of 
additional bach up routines "Striped loaders. Picture loaders, etc .handled with ease 

• Back up copies are made on blank TAPES at fast speed (taster than disc') - VERY 
reliable loading, unlike some competing unities we could nanlton! • Easy lo use • No 
second cassette unit required *Great value at £7.96 

HALF PRICE SPECIAL THIS MONTH!!! 

Copycat and Lightning Load together for only £5 95. Usually £5 95 each. 

COPYCAT - Our highly popular tape to tape back-up copier for Commodore/ standard 
rate loading systems • Wizard sound effects Cassette magic sense * Thousands sold 

LIGHTNING LOAD II - Converts almost aM your slow loading games/ programs into 
SUPERFAST TURBO loading versions on tape • The tedious wait for loading is over 
when you buy this excellent program 

COMMODORE PLUS-4/C16 

THE MIRROR - Superb tape 10 tape Back up copier catering for the majority of Plus-4/ 
CI6games BacksupbothstandardandFASTloadingsoftware Excellent value -£7 93 

TAPE HEAD ALIGNMENT KIT - Description the seme as Commodore 64 version (see 
above). Highly popular utility - £6 95 

MERLIN ASSEMBLER - 100% machine code assembler for the Plus-4/C16. Very fast 
assembly ol source code. Easy entry/editing of code via the full screen editor Full error 
message pinpointing the errors Full load/save and printer facilities Variable names, 
labels, hex/decimal - Many other facilities too numerous to mention H, fl hl y recom- 
mended - A truly superb assembler Comes with instruction booklet and FREE booklet 
ol machine code routines. Cassette £895 Disc £13 95 

RAPID dispatch of orders 

U K postage is included m the price Europeans please ADD 50p Outside Europe AOD 
£1.00 Overseas orders welcome All payments must oe in pounds sterling Cheques' 

POsto: 



WIZARD SOFTWARE (Dept. K) 
59 THE MARLES, EXMOUTH, 
DEVON EX8 4NE 



EXTENSION 64 

* SUPERB INTERRUPT DRIVEN SPRITE CONTROL 

* UP TO 64 SPRITES ON SCREEN SIMULTANEOUSLY 

* AUTOMATIC MAZE RUNNING FEATURE 

* AUTOMATIC ANIMATION 

* AUTOMATIC JOYSTICK/KEYBOARD SPRITE CONTROL 

* MODE SELECTION WITH A SINGLE COMMAND 

* PRINT DIRECTED TO HIRES SCREEN IN BIT MAP MODES 

* PLOT, DRAW, CIRCLE, BOX GRAPHICS COMMANDS 

* EASILY IMPLEMENTED SPLIT SCREENS AND SCROLLING 

* INTERRUPT DRIVEN SOUNDS, WITH OUEUEING 

* RENUMBER, AUTO, DELETE, RESTORE LINE NUMBER elc. 

* BLOCK SAVE/LOAD, DlSK/TLOAD COMMANDS 

* HEX & BINARY, BIT TEST/SET/RESET. DEEK/DOKE 

* IMPROVED ERROR HANDLING, ON ERROR GOTO/GOSUB elc. 

* IF . . . THEN . . . ELSE. WHILE . . . WEND, REPEAT . . . UNTIL 

* PROC, DEFPROC, ENDPROC FOR BETTER STRUCTURE 

EXTENSION 64 completely eliminates the need lor all those unintelligi- 
ble PEEKs and POKEs and provides easy control of ALL the C64's 
features. The carefully designed and very powerful new commands 
make extensive use of the C64's interrupts to do a lot of the work auto- 
matically, "behind the scenes". For example, if you top up the sound 
queue you can play a three-part tune in strict tempo while you list and edit 
your program. 

EXTENSION 64 is available on cassette, disk or cartridge complete with 
manual and six demonstration programs at the special introductory price 
of:- 

Cassette E7.95. all inclusive 

Disk £9.40, all inclusive 

Cartridge E14.95,allinclusive 

Sond cheque or PO or phone Access/Visa details to: 

KNIGHT SOFTWARE (Dept YC) 

24 Badger Lane, Ingleby Barwick, Stockton-on-Tees TS17QRN 
Telephone (0642) 762540 



Qz. commodore 

J~\ /" "\ /"T"\ Thl» month th« 
\ //S ( C\ 1 thebtowf) Th 



This month there's good news... and there's bad news! The bad news 
ca Increase (but we've Increased our discount to soften 
he good news Is our super summer price offer on all VI ia 
products... lowest ever SuperBase prices... and more great 138 book-.' 



■ Commodore 128D computer £539 

■ 128D plus 19O0M monitor £639 H 

■ 128D business system £9G9 ■ 
(1280 • 1900M • MPS 1000 » Mlcroclerk) 

■ Commodore 1571 disk dr-vo £259 II 



! Commodore 128 computer £249 M 

1901C monitor 40/80 colour £279 H 

1900M monitor 40/80 mono £139 n 

RS232 ot Parallel Interlaces £29 N 

128'IEEE • Parallel Interface £79 



t year guarantee on at Commodoie products. Puces subject lo avaeabillty. VAT Included 
Pie— add 15 toi 3 -day delivery oi £10 lor Oa tapost overnight InWrlacos post free 



VIZAWRI : A VtMWrlte Classic 128 Is a much enhanced successor lo the 
besl-seakng VaaWtflo 64. which THE TIMES toatured in Ihree 
articles, calling It 'a creative writer's dream 1 VI* aWrtte Classic 
Is certainly the best wordprocossor we've yol soon on any 
computer, ever' Written specialy tor the 128, VlzaWrlte Classic 
makes mawnum use ol the speed, memory and 60-cohimn 
•S* display, showing your document exactly as It will be printed . 
with a 30.000 word disk d-eiionaiy. massive 5SK lent area, proportional printer support 
plus built-in NLQ fontt for CBM/Epson type pnnters. easy-to-uso 'pull-down* menus, 
full function calculator, "newspaper style' columns, man merge and much, much more! 

FANTASTIC SUMMER SAVINGS ON ALL VIZA PRODUCTSl 




1 ■ VliaWrtte -Classic' 128 a»*1 


£76 « BVIiaStar 128 




£96.. 


1 ■ ViiaWrlte 84 ■Professional' }>«f 


£49 9i ■ VliaStar 64 XLB 




£76™ 


| ■VUaWrlleM (cartridge) a—* 


£69 « ■ VlzaStar 64 Xl4 


r»« 


£66 m 



Transform your Commodore 64 into a lull 
fealurod professional database system, 
with up to 1000 characters per record on 
up lo lour screens and up to 128 Hems 
per record, definable as hey. text, numeric, 
result or dale. . m flies ol up to 16 rnllton 
characters' SuperBase 64 even has calculator and calendar functions, easy Input 
from word processor or dala Mos. both menu-driven and program control, sorting 
and searching, fully definable report and screen formats-. Supertiase64 Is essential 
il you want the most from your 641 Suppled on 1541 d>3h with excellent tutorial 
and reference manual, phis audio learning tape 

BEST EVER SUPERBASE PRICES! 



■ SuperBase 64 £54 « ■ SuperBase: The Book £11 95 

■ SuperBase Plua 4 >*• £54 »i ■ SuperBase CBM 8096 jj-— r £115» 

■ SuperBase 128 jwt £64 si ■ SuperBase CBM TOO £115.00 



Tricks & Tips for the 128 

A 300-page Ireaeure chesl of easy-to-use 
practical techniques for your C126.~ pached 
with ready -to -enter BASIC and Assembler 
listings, carefully explained, and tut ol useful 
Ideas for you to try' Youi see how lo run 
64 programs at 128 speed, how lo work wilh 

graphics and multiple screens You'll see 

how to all or the character sat, print or display 
banner titles, add extra function keys, 
protect and restore your programs, rodofmo 
the keyboard, add now Basic commands 
and much more... all lor only £12.951 



Are you a two- 
finger typist? 
Then why not lot 
SuperType help 
I you learn to touch- 
type Ihe fasl and easy way ., with your 
computer as the leacher' All Ihe farrsty can 
learn this useful skill, at Iheir own pace 
and profit from the very latest computer- 
r. di'd training and feedback. lednOJUMl 

ONTAPE 1>«* £16.9^ 
ON DISK 2>s? £21.95! 




Presenting the Amiga 

If you want lo know why there's such a 
fuss about the Amiga, this booh tells all! 

A complete run-down on this amazing 
machine, It reveals the secrets of Amiga 
Basic. Amiga DOS. Intuition workbench, 
plus mice. Icons, speech, sound... C9.9SI 

The Anatomy of the 1571 

Exploit the tuH potential ol your disk drive 
with this 300 page In-depth guide! Fullest 
coverage of sequential, relative and direct 
access lillng, CP*M. DOS routines, circuitry 
and a fully annotated ROM listing... £12.95! 



The Anatomy of the 128 

With nearly 500 In formation -packed pages, 
this Is THE book to get about your new 
Commodore 128... the Insider's guide 
to Ihe secrela of this powerful computer! 
Fully documented ROM listings ot both Basic 
and the Kernel... memory maps. loro-pago 
Hongs ... ports, interrupts, bool routines... 
SID, VIC. Z80 & 80-cohrmn chips memory 
management., assembly code enlarging 
the screen ... 640 ■ 200 graphics ... el this 
and much more tor onty £12.95* 



I 126 Basic compiler 


49.96 £44.95 


■ Super C 128 


-6*96 


SI •)•> 


■ PetSpeed 128 compiler 




44.95 


■ MiroClerk 128 




99.99 


■ Commodore Script 128 




49.99 


■ Super Script 128 




69.95 


■ Superscript 64 


■6996 


49.95 


■ SuperBase Starter 64 


4je-M 


29.95 


■ Super Pascal 64 


■49 96 


44.95 


■ Basic 64 compiler 


49 96 


44.95 



■ Simon's Basic 64 (cad) 


•50-Oe £35.00 


■ PotSpeod 64 compiler 


M M 


34.95 


■ 0-tord Pascal 64 


-49-96 


42.95 


■ Oxford Pascal (tape) 


■ee96 


19.95 


■ JetPack 84 compiler 


-894* 


29.95 


■ JetPack (tape) 




14.95 


■ A-,sombHWmon,lor 64 


1!* 


16.95 


■ Power Plan 84 


-4*99 


36.95 


■ Prachcalc II 


■6996 


49.95 


■ Master 64 


■69 O0 


39.00 



WANT IT TOMORROW??? CALL US TODAY!!! ON 01-546-7256 



Prices Include VAT and POSTAGE 
and are correct on going to press. 
Order by post or phone, using 
cheque, Access, BardayVlsa or 
postal order. Despatch la by same 
day 1st CLASS post Product dala 
available on request, or phone lor 
advice If In doubt. |REF A40j 



LAKESIDE HOUSE, KINGSTON HILL. SURREY, KT2 7QT. TEL 01-S46-72S6 




Submissions 




YOUR BEST INDEPENDENT COMMODORE MAGAZINE 

[SO YOU OWN A COMMOUOKE? 



SO YOU'VE WRITTEN SO 




SO WHY HA 




TO US? | 



YOUR COMMODORE IS ALWAYS ON 
the lookout for new material for publica- 
tion and we know that there are 
thousands of intelligent, literate, 
innovative and creative Commodore 
owners out there, so why don't we get 
together? 

If you have written a program, be it a 
game or a utility, that you think you 
should share with other Commodore 
owners, then why not submit it to us for 
publication. Don't forget we pay very well 
for any articles that we publish. 

All submissions should be well docu-" 
mented and where possible include a line 
by line breakdown of the program 
together with a list of any variables used. A 
copy of the program should be included 
on either tape or disk. 

All submissions should be sent to the 
address below. If it is not chosen for 
publications then it will be returned to 
you. 

You may not have written any software 
yourself, but you may have very firm 
opinions about the world of Commodore 
and all its attendant industries and 
products. If you do. then put your views 
or questions on paper and post them to us 
again at the address below - you might 
even get paid for airing your views! 

All submissions should be sent to: 



The Editor 

Your Commodore 



r 



Office Use Only 



Surname: . 
Firstnames: 

I 

| Address: 



Postcode: Telephone Number: 

Times to contact you: 

Program Name: 



| Computer/memory size: 

Extras required (disk etc): 

Have you sent the program to another magazine? Yes/No 

I 



PLEASE- COMPLETE IN BLOCK CAPITALS 



D.ite 



received: Dale ack - senl: 



Date checked: Checked by: 

I Rating: 



Argus Specialist Publications 
No 1 Golden Square 
London W1R 3AB 



I Comments: 
I 



I 

I Reply sent: received: 

J Date printed: Date returned: 

I 

| Fee: 



j Date Fee sent: 

i 




The amazing, combined text and graphics adventure generator enables 
you to producefast, compact adventuregames with the minimum of effort and 
the maximum of creativity Stunning graphics can be created quickly and easily 
with the powerful picture generator that has many features including:- dot, 
cirde, elastic line, ellipse, fast fill, shading, step by step review, easy editing and 
the ability to merge pictures. 

The comprehensive, intelligent command interpreter can handle complex 
sentences and multiple input commands. There is also an extensive text com- 
pression facility that allows you to produce far more detailed and numerous 
location descriptions. Plus a full function editor, automatic word formatting, a 
logical command interpreter and an abbreviated input acceptance facility. 

So unleash the power of your imagination now with The Graphic 
Adventure Creator, for your Commodore 64 computer Available from all leading 
retailers or direct from Incentive on 0734 591678. 

INCENTIVE SOFTWARE LTD. 54 London Street Reading RG1 4SQ. 



' Please rush me, for my Commodore 64 
I Computer THE GRAPHIC ADVENTURE 
i CREATOR 

□ Cassette £22.95 
I □ Disc £27.95 
I lendoseCheque/POfor£_ 
or please debit my Credit Card 

| No 

I Name 

j Address 

I 

I 

I 




George Duval has managed 
to get hold of some Amiga 
games software. Read on to 
find out what's available. 



IT IS A REAL SHAME THAT COMMOD- 
ore, in alt its wisdom, has decided that 
the Amiga should be a business 
machine. When you think about it, with 
amazing graphics, 40% colours, stereo 
sound and a 68000 processor, there 
cannot be a machine more suited to 
high quality games. 

Fortunately, many of the large 
American software houses agree with 
me, and slowly but surely some 
excellent products are appearing. Elect- 
ronic Arts was the first company to 
produce games for the Amiga, not 
surprisingly perhaps -Commodore gave 
development machines to Electronic 
Arts more than six months before 
anyone else! 

Most 64 owners will recognise the 
first three games EA released -Archon, 
One-on-One, and Seven Cities Of Cold 
as they are all conversions from C64 
originals. None of these products take 
full advantage of the Amiga's capabili- 
ties, but each has its own touches that 
make it just that little bit better than 
anything available for a normal home 
micro. But then the Amiga is no 'normal 
home micro'! 

Seven Cities of Cold was the first 
complete game for the Amiga, however 
it is also the least good. It is ridiculously 
similar to the 64 version, even down to 
the chunky horizontal scrolling; which 
is more reminiscent of the Vic 20 than a 
£1500 Amiga! 

In The Basket 

Things improve greatly, however, with 
One-on-One. Although it too is a 
straight conversion from a well known 
64 game, the graphics are good and the 
sound is absolutely mindblowing! In 
case you don't know the game, it's a 
basketball simulation, except that you 
don't play a whole team, just one player 
- Dr J, or Larry Bird (both of whom I am 
assured are well known basketball 
stars!). You must try and out-fox your 
opponent and score as many points as 
possible in the time allotted. 

Graphically One-on-One is good, 
though by no means special. By using 
vertical sprites, the programmers have 
taken the easy way out. Had they used 
the much vaunted 'Blitter chip' the end 
result would have been truly outstand- 
ing. The sound however is a different 
story. Using sound-sampling EA has 
managed to use sounds from a real 
game, and everything from the ball's 
bounce to the popcorn seller is 
fabulous. 



A WyndWSIker 

Adventuring 

Perhaps the best known of EA's conver- 
sions is Archon. As a 64 game I rated it 
very highly, since it managed to 
combine the strategy of chess together 
with a more exciting 'arcade' section. 
On the Amiga it is the same game only 
belter. The graphics are beautifully 
defined, the sound is fun, and the game- 
play is gripping - what more could you 
ask for? 

Out In The Cold 

Arcticfox! If the first three games are 
good conversions, then Articfox is what 
the Amiga is all about. Programmed by 
Dynamix, it must be the best game on 
any personal computer. To describe the 



Flight Simuliloi ^ 




game in full would take hours, but 
briefly it is true 3-D (as opposed to sprite 
3-D) Battlezone type game, in which you 
control a 37 ton missile launching 
lOOmph tank! This is the only game I 
have seen that shows what can be done 
on the Amiga. It has amazing graphics, 
great sound, and is immensely playable. 




miiGA 




"PLAYTIME 



On the packaging of Arcticfox is a 
line which I think sums up what this 
game is all about. It reads "Where do 
you sleep when you own a 37-ton tank? 
Anywhere you want to"! 

Arcticfox's mission is set in 2005, and 
you must infiltrate the Alien's force field, 
and blow up the main fort, thereby 
defeating the aliens. Against you are a 
wide variety of stationary as well as 
mobile weapons which will do their 
utmost to make sure you get massacred 
well before you reach the main fort. 

What makes Arcticfox so good is the 
attention to detail. The instrument panel 
alone is amazing, with each of the 
weapons you have being activated by 
moving an on-screen hand. Radar too 
has been implemented, and the mini 
screen used for displaying the guided 
missiles is incredible. 

Reviewing this game poses one 
difficulty, what superlatives are there 
left to use? Screen shots cannot do this 
game justice, and even the fact that it is 
quite slow doesn't alter the fact that this 
game is great. 

In On The Acl 

Although EA is the biggest producer of 
Amiga software, other American 
software houses saw this computer as 
their chance to be 'there at the begin- 
ning'. Activision managed to release 
three titles very quickly, yet retained a 
very high standard. 



A Borrowed Time 

As with most of EA's games, Activi- 
sion has converted three best selling 
Commodore 64 titles; Hacker, 
Borrowed Time, and Mindshadow. 

In 1985, Hacker was one of Activi- 
sion's best selling games. On the Amiga, 
it has been upgraded graphically, but 
the gameplay remains the same. You 
have broken into a computer and must 
travel around the world collecting 
sections of a secret document. What 
makes this game so good on the Amiga is 
that the small 'monitor' within the game, 
which is used to display the locations, 
shows some incredibly well defined 
pictures of all the major cities around 
the world (Tower bridge is especially 
good!). 

Mindshadow and Borrowed Time 
are both graphical adventures, and 
although they have no sound, the 
graphics are of a very high standard. In 
Borrowed Time you play a 1930s 



detective called Sam Harlowe, and it is 
your job to crack a complicated case, 
and avoid being murdered - not an easy 
task! 

Mindshadow is a more impressive 
adventure, in which you play a victim of 
amnesia who must find out who and 
where he is. Although neither of these 
games use the full potential of the 
Amiga, they were created fast, and as 
such bode well for what Activision will 
do in the future. 

Although England is well behind on 
Amiga development, we do have one 
game - Brataccus from Liverpool's 
Psygnosis. Originally a QL game, more 
recently it has been released for the 
Atari 520ST, Mac and Amiga. It is an odd 
game, in which you must wander 
around a spacecraft, doing battle using 
your sword and refusing offers of drinks 
at the bar! Unfortunately Brataccus is 
another example of a game that does not 
take advantage of ANY of the Amiga's 
facilities, even down to the reduced 
screen size and limited colour. 

^ Archon 

tucker ^ 




What Next? 

What the future holds for Amiga games 
is uncertain, but I have seen sneak pre- 
views of two games which should be 
released towards the end of 1986. Wynd 
Walker will be Commodore's first, and 
quite possibly only, game for the Amiga. 
It is an arcade adventure with you 
playing the hero, a wizard. As yet Wynd 
Walker has no gameplay, but enormous 
potential. 

The Amiga is most suited to 3-D 
simulations, and I have seen an 
unfinished flight simulator that, when it 
is released, will have airline pilots 
aghast! Programmed by the team 
responsible for the now legendary Flight 
Simulator II for the IBM PC, it is fast, has 
wonderful solid objects and great 
potential. Unfortunately in the version I 
have, you can also fly UNDER the 
runway, and THROUGH the Pyramids! 

As yet, no one has written a game 
purely for the Amiga, using all the 
potential of this incredible machine. 
However I know for a fact that EA is 
writing the arcade class Marble 
Madness, which should be out within 
two to three months. All eyes are on it 
and another EA title Return To Atlantis - 
the first game to make use of the Blitter - 
to show what really can be done. 



Get in a spin with 



W Bremner's insight 



into your 1541 disk 
drive. 



IN ORDER TO INCREASE 
your understanding of the 
1541 it is necessary to 
comprehend how the user 
communicates with the 1541. 
This article should give you a 
better grasp ot this subject. 

The program listed at the 
end will be used throughout 
the series to investigate the 
drive, and allows the user to 
store and retrieve programs 
and data within the drive's 
own memory. The program is 
rather slow, as it is written in 
Basic (with some machine 
code), but is fully docu- 
mented, and serves to teach 
as well as being a useful tool. 
Readers interested in 
acquiring more complex 
utilities should get in touch 
with Evesham Micros on 0386 
41989 or obtain a copy of 
Drivemon by Slarpoinl 
Software. 

The Serial Bus 

The 1541 Disk Drive is one of 
the many peripherals 
available for the Commodore 
64 which use the serial bus to 
send and receive data to or 
from the host computer. The 
bus is a daisy chain 
arrangement allowing up to 
five peripheral devices to be 
connected together, for 
example, one printer and two 
disk drives. Since several 
devices may be connected at 
the same time, there must be 
a way of distinguishing one 
device from another. This is 
the purpose of the device 
number, and the 64 assigns 
numbers zero to 31 to the 
serial bus, eight to 11 covering 
up to four drives. 

The 64, known as the bus 
controller, can command a 
device to receive data on the 
bus (LISTEN) or transmit data 
(TALK). Only one device may 
talk on the bus at a time, but 
many devices may listen to 
one talker, and the 64 is the 
only device on the bus that 
may act as controller. When a 
device is addressed, the 64 
sends an attention signal 
(ATN) over the bus, alerting 
all connected devices that 
they should be aware that 



PROGRAMMING 

THE 

1541 



data communication is being 
established with one of them. 
The 64 then sends the number 
of the desired device, and if 
that device is present, it will 
respond to the ATN, 
otherwise a timeout error will 
occur, and the 64 will report a 
DEVICE NOT PRESENT, 

The 64 then indicates to 
the selected device whether it 
should be a listener, and 
receive data from the bus. or 
be a talker, and send data. A 
second address may also be 
sent to perform any further 
set up operations. To ensure 
the accuracy of the following 
data transmission, the data is 
sent over the bus one 
character at a time. Onty 
when the receiver acknow- 
ledges the accurate receipt of 
the data may the sender 
transmit, another character. 
This fairly lengthy procedure 
is known as handshaking, and 
is necessary due to the 64 and 
1541 not being centrally 
synchronised. When the data 
transmission is complete, the 
device is de-addressed; if the 
device was sending data, the 
64 sends an UNTALK 
command; if the device was 
receiving data, the 64 sends 
an UNLISTEN command. The 
bus is then free to handle the 
next transmission. 

Controlling the 1541 

Various housekeeping duties 
such as renaming a file can be 
executed by sending special 
commands to the 1541. In 
order for us to manipulate the 
drive's memory, the Disk 
Operating System (DOS) 
designers kindly included 
some extra commands, some 
vital, some seemingly super- 
fluous. The three most 
important of these allow us to 
store, retrieve and execute 



machine code routines and 
data within the 1541 RAM. 
They are similar to the POKE, 
PEEK and SYS functions in 
Commodore Basic, and work 
in much the same way. These 
special commands along with 
their relevant parameters are 
sent to the drive along the 
command channel (15), and 
are covered in depth in the 
1541 user manual, so I will 
only briefly review their 
syntax: 

MEMORY-READ; fetches up 
to 255 bytes from anywhere in 
the drive's memory, and 
returns them along the 
command channel. 
Formal: "M R ";CHR$(LO 
Addr.);CHR$(HI Addr.);CHR 
$(No.bytes)-optional. 
MEMORY-WRITE: stores up 
to 34 bytes at a time in RAM. 
Formal: "M-W":CHR$(LO); 
CHR$(HI);CHR$(No.bytes); 
CHRS(data). 

MEMORY-EXECUTE: exe- 
cutes a ROM or RAM routine 
within the drive's memory. 
Formal: "M-£";CHR$(LO): 
CHR$(HI). 

Drive RAM Usage 

$000 - Zero Page 

$0100 — Processor Stack area 

$0200 — Serial Bus Input/ 

Output buffers 

$0300 — BuffertfO 

$0400 — Bufferfll 

$0500 — Buffer #2 

$0600 — Buffer #3 

$0700 — Buffer tt 4-Used by 

DOS for BAM 

The following program 
demonstrates the use of all 
the "MEMORY" commands 
in one sequence. A small 
routine is poked into Buffer 
HO at $0300, which, once 
executed, stores a further 
byte in location 0400. Note 
that the m/c routine ends 



with an RTS (Return To 
Subroutine). 

100 OPEN 2,8,15 

110 PRINTW2, "M-W",CHR$ 

(00);CHR$(03);CHR$(6);CHR 

$(169);CHR$(255>; CHR$ (141) 

;CHR$(00)CHR$ 

(04);CHR$(96) 

120 PRINT #2, •'M-E";CHR$ 
|00);CHR$(03) 

130 PRINT N 2, "M-R";CHR$ 
(00);CHR$(04);CHR$(01) 
140GETtf2,B$:PRINT B$ 

The same routine when 
written in machine code is 
considerably more involved, 
but as long as the rules are 
strictly followed, in the 
correct sequence, equal 
results can be achieved, and 
often a lot faster. Luckily, 
most of the hard work has 
been done for us, and we only 
need to call the correct 
Kernal routines: 



Serial Bus 
Routines 



KERNAL 



LISTEN $FFB1 — Command a 
device on the serial bus to 
LISTEN. 

SECOND $FF93 — Send 
secondary address after 
LISTEN. 

CIOUT SFFA8 — Output a 
byte to the serial bus. 
UNLSN SFFAE — Command 
all devices on the serial bus to 
UNLISTEN. 

TALK $FFB4 — Command a 
device on the serial bus to 
TALK. 

TKSA $FF96 — Send 
secondary address after 
TALK. 

ACPTR SFFA5 — Input a byte 
from the serial bus. 
UNTLK $FFAB — Command 
all devices on the serial bus to 
UNTALK. 




Com 
Rout 



plimentary 
ines 



Bus 



IONIT $FF84 — Initialise 
Input/Output 

READST $FFB7 - Read status 
word 



To transmit data to a device, 
the accumulator (acc.) is 
loaded with the device 
number, and the LISTEN 
routine is called. The 
secondary address (channel 
number) is then stored in the 
acc. bits five and six are set 
(result = s.a. + $60) and the 
routine SECOND is called. 
Data characters stored in the 
acc. are then sent over the bus 
using CIOUT, and the whole 
sequence is terminated with 
the UNLSN routine, which 
sends an EOI (End Or 
Identify). 

Getting a device to send 
data over the bus is just as 
easy. The KERN AL talk 
routines are used in place of 
their corresponding LISTEN 
calls, and data is input using 
ACPTR. Bit six of the status 
flag (updated after a READST 
call) can be checked after 
each ACPTR call to test for an 
EOI from the drive. 

To open a file or direct- 
access buffer, bits five, six, 
seven and eight of the 
secondary address value are 
set (result = s.a. + $FO). Bits six, 
seven and eight are set (result 
= s.a. + $EO) to close the 
file/buffer. 

Armed with this inform- 
ation, we can now write our 
machine code routine. Note 
that because the LISTEN/ 
SECOND sequence is used 
three limes I have set it aside 
as a complete routine call. I n a 
program full of disk access, 
this is often a valuable space 
saving technique. 

This covers all the 
"Memory" commands and 
their various peculiarities. As 
reference only, I have 
included details of those less 
well known commands I 
mentioned earlier. So far I 
ha» 



these commands implement- 
ed in elaborate disk 
protection schemes; they 
lend to suggest exact usage 
because of their limiting 
qualities. As in the case of ihe 
memory commands, ihey are 
executed by sending ihe 
funciion and its parameters 
along the command channel. 
BLOCK-EXECUTE: Reads a 
specific track and sector into a 
previously opened buffer and 
executes ihe machine code 
routine at the start of that 
buffer. 

Formal: "B-E";CHR$(chan- 

nel);CHR$(drive no.) ;CHR$ 

(track);CHR$(sector) 

E.g. PRINT/M5, "B-E";2;0;18; 

10 

USER-JUMP :Apart from the 
two "Ux" commands used to 
read (U1/UA) and write 
(U2/UB) specific sectors to 
and from the diskette, and ihe 
two "Ux" commands used lo 
set the drive bus speed 
(U9/UI) and reset the drive 
(U10/UJ), there are six "user- 
jump" functions which, when 
called, execute code at the 
beginning of buffer tt 2 
($0500). 

U3(UC) — jump to $0500 
U4(UD) — jump to $0503 
U5(UE) - jump to $0506 
U6(UF) — jump to $0509 
U7(UC) — jump lo $050C 
U8{UH) - jump to $050F 

The nature of these 
commands would suggest a 
"jump-table" set up to 
perform varied tasks within 
the 154fs memory, easily 
called up from an external 
Basic or machine code 
routine. For example, a 
routine which reads section 
18,0 into buffer#1 and sends it 
at high speed along the bus 
could possibly be called by: 

PRINT ft15,"UC";CHR$(18); 
CHR$(0) 

Although, so far I have 
referred only to the 64 and 
1541, the above kernal calls 
and communcation protocols 
are analogous to both the Vic- 
20 with 1540 Disc Drive, and 
the C128 in 64 mode with 



LISTEN 


= $FFB1 


: TALK 


= $FFB4 


SECOND 


■ $FF93 


: TKSA 


= $FF96 


CIOUT 


= $FFA8 


: ACPTR 


= $FFA5 


UNLSN 


= $FFAE 


: UNTLK 


= $FFAB 


READST 


= $FFB7 


: CHROUT 


= $FFD2 


DEVNUM 


= 8 






SECADD 


= 15 







SNDTBL .BYTE "M-W".$00,$03.$06.$A9.$31,$8D.$00, 
$04,$60 

$8D,$00,$04,$60 
SNDEND 

GETBL .BYTE "M-E",$00,$03 
GETEND 

EXTBL .BYTE "M-R",$00,$04,$01 
EXEND 



JSR LSTNRT 
BNE END2 



; send listen * second addr. 
; finish if error flag set 



LDXtfSOO 

LOOP1 LDA SNDTBL, X 
JSR CIOUT 
INX 

CPX ftSNDEND-SNDTBL ; is it done? 
BNE LOOP1 



; get "Memory-Write" string 
; output byte 



JSR UNLSN 
and UNLISTEN 

JSR LSTNRT 
LDX#$00 

LOOP2 LDA EXTBL, X 
JSR CIOUT 

INX 

CPX# EXEND-EXTBL 
BNE LOOP2 
JSR UNLSN 

JSR LSTNRT 

LDX«$00 

LOOP3 LDA GETBL,X 
JSR CIOUT 

INX 

CPXffGETEND-GETBL 
BNE LOOP3 

)SR UNLSN 

LDAfrDEVNUM 
JSR TALK 

LDA SECADD + $60 
JSR TKSA 

JSR ACPTR 
PHA 

JSR UNTLK 



PLA 

JSR CHROUT 
END2 RTS 

LSTNRT LDAWDEVNUM 
JSR LISTEN 

jSR READST 
AND«%10000000 

BNE END1 

LDAtfSECADD + $60 

JSR SECOND 

LDA #$00 
END1 RTS 



; send last character, EOI, 



; send "Memory-Execute' 
string 



; send "Memory-Read" 
string 



; command drive to talk 
; set secondary address 



; input byte 
; store it 

; command disk to stop 
talking 



retrieve byte 
print it 



tell disk to listen 



; get status 

; check bit 7 (Device Not 

Present) 

; error flag set 

; set secondary address (bit 
5+6 set) 



; clear error flag 








Eric Doyle takes another 



long hard look inside your 




THE 6500 SERIES CENTRAL PROCESSOR 
may be the heart of a computer but it is 
the slave of the operating system. The 
OS is either a machine code program or, 
more usually, the program contained in 
the Basic ROM. This is the language of 
convenience devised by Microsoft 
which the computer uses when it is first 
powered up. 

For Convenience 

A language of convenience has nothing 
to do with the scrawlings on a lavatory 
wall, it is merely a compromise language 
used when communications cannot be 
conducted in the speaker's mother 
tongue. Basic is such a language, a 
computer speaks in pure binary but we 
use English so a stylised form of English 
has been devised to ease the job of prog- 
ramming. Similarly, a computer does not 
use variables in its operation, it uses 
definite memory locations. 

The use of variables in Basic is so 
essential that I used to take it for granted 
that my old Vic 20 knew what I was 
talking about when I referred to them. It 
wasn't long before I started to wonder 
how it responded to and stored all the 
variable names I came up with. 

One possible answer was that every 
conceivable variable name had a space 
allocated by the ROM fromthe moment 
I turned the computer on. Of course this 
is impossible in a mere 3.5K of memory. 
To allocate sufficient space to 26 strings 
(A$-X$) would need a reserved space of 
6.5K and when arrays are taken into 
account there wouldn't be enough 
room in a C128! 

The only answer is that the computer 
adds to the list of variables as each is 
encountered when a program runs. This 
still means that space has to be allotted 
in RAM but it also means that there is a 
limit to the number of variables which 
can be defined. It doesn't take much 
effort to verify this by trying to dimen- 
sion a large array like DIM A$(256,256). 

This list is stored in the same area of 
memory as the Basic program and ef- 
fectively reduces the space which is 
available. The more variables you use, 
the shorter your program must be. 

This means that the computer needs 
to keep track of where the variable 
space is to be found. How many types of 



variable are there? Integer, string and 
floating point make three but there are 
also arrays and defined functions. 

How do we find where these are 
stored? Memory locations 45 to 52 hold 
the secret (C128 owners in C128 mode 
should add two to all the following 
values): 

Loci Loc2 Description 

45 — 46 Start of variables 
47 — 48 Start of arrays 
49 — 50 End of arrays 
51 — 52 String storage 
55 — 56 End of string storage (end of 
Basic memory) 

The locations pointed to by the con- 
tents of this tiny block of memory can be 
found by multiplying the contents of 
Loc2 and 256 and adding the contents of 
Loci, 

Down to Work 

Time to experiment. Enter the following 
short program and run it: 

10 A%=257 

We must find the start and end of 
variable storage so type in the following: 

PRINT 256'PEEK(45)+PEEK(46),256*PEEK 
(46>-1) 

The values obtained will vary dep- 
ending on the model of your Com- 
modore but you will find the difference 
between the two values to be seven 
bytes. This is the amount of space 
allotted to all integer variables. 

Now let's see what's in these seven 
bytes. Normally we'd use a loop to PEEK 
each location in turn but this means 
setting up a new variable and possibly 
affecting these memory pointers. 
Luckily, when a variable is set up another 
pointer pair indicates where the variable 
is stored. These are locations 71 and 72 
(73, 74 in 128 mode). Add the following 
lines to your program. 

10 REM BANK1 IN C128 MODE 

20 POKE 828,PEEK(71):REM POKE 2816, 

PEEK(73) IN C128 

30 POKE 829, PEEK(72):REM POKE 2817, 
PEEK<74) IN C128 

40 LO=PEEK<828)*-PEEK(829)*256:REM 
2816,2817 IN C128 

50 FOR X=0 TO 6:PRINT PEEK (LO+X);: 
NEXTX 

Running the program should give 
these values: 193,128,1,1,0,0,0. 

You're probably wondering what all 
this means. Let's examine the first two 



figures. What happens if we subtract 128 
from both numbers? We get 65 and 0. 
Ah! 65 is the ASCII code for the letter A, 
our variable's name. What if we'd called 
it AA%? Could it be that we'd have 
found 193 in the second byte? Try it and 
see. Change your program line 10 
variable to AA%. 

Eureka! It works. So we now know 
that the first two bytes of a stored integer 
variable is the ASCI I code of the first two 
characters of its name plus 128. 

The next two numbers reveal their 
identity if we treat them in a similar way 
as we treated the variable pointers 
earlier. This time we must multiply the 
first number by 256 and add the second 
number. Put your computer down, you 
can do this one in your head. Ok 
Einstein, the answer is 257. Well, well, 
this is the value of the variable. Clever 
isn't it? 

What do the zeros mean? Precisely 
that, nothing whatsoever! They're just 
padding and you'll see why later. 



Complex Integers 

Let's try a larger value for AA%, like 
32768. See, your computer can't take it. 
Now try 32767. It likes that, why? 

To answer that we've got to go 
binary. Each byte consists of eight 
switches which can either be off or on 
and each indicates a different number. 
From left to right these are 128. 64, 32, 16, 
eight, four, two, one. The number four 
would be represented by the four switch 
being turned on and all the others off, 
five would need switch one and four on 
and 255 would mean all switches were 
on. 

We have found that the stored 
number is held in two bytes. In this case 
the 16 switches add eight higher levels to 
the existing group; 32768, 16384, 6192, 
2048, 1024, 512, 256. 

Adding all 16 numbers together we 
get a maximum value of 65535. Sub- 
tracting the highest permissable integer, 
32767, from this gives 32768, the highest 
switch value. If this switch is not used for 
number storage what purpose does it 
have? 

If the switch is on, the integer is a 
negative value and if it is off , the number 
is positive. 

The proof of the pudding etc. Give 
AA% a value of -257. The resulting values 
are 254 and 255. This gives 65279. We 
know the number is negative so 32768 
can be subtracted to give the answer 
32511. If 32768 is subtracted again the 
result is -257! 



Programming 








This is a mathematical solution. What 
actually happens is that a negative num- 
ber is represented in a form known as 
two's complement. 

To get a two's complement number 
we need to look at the binary repre- 
sentation of the positive value 257. An 
on switch is represented by one and off 
is shown as zero. From our previous 
example we can see that 257 consists of 
256*1, so we turn on those switches 
only: 

0000000100000001 



Next we turn all on switches off and 
all off switches on: 

1111111011111110 

The final act is to turn the last switch 
back on: 

1111111011111111 

Evaluating this gives the value 65279. 
Now try for yourself to split the 16 
switches into two groups of eight and 
see what values you get using the 128, 64, 
32, 16, eight, four, two, one series in both 
cases. You should get 254 and 255. 

What would happen if the last switch 
was on as in this case? 

Number 0010011100000100 
Complement 1101100011111011 
+ 1 

We can't turn the last switch on to 
complete our two's complement so we 
turn it off and try the next switch. It's also 
in the on position. Turn it off and move 
along the line until you find a switch in 
the off position, remembering to turn 
off any switches you have to pass. 

In the example the third switch is off 
so we need search no further: 

Two's comp. 1101100011111100 

To convert the number back to a 
'real' value, reverse the process. 

0010011100000011 
+ 1 

001001110000010 
=00100111 00000100 
« 39*256 + 4 
= 9988 

Don't forget the minus: -9988 

Play with the program giving AA% 
different identities and then trying work 
out from the dated PEEKed the number 
you first thought of. 



Alternatively, if all this binary is too 
much for you, work out the value stored 
and subtract 65536 from the result to 
give the negative value. 

Highly Strung 

Flushed with success, we'll now look at 
strings. Change line 10 to A$="FIND IT" 
and run the program again. 

This time the first three values are 65, 
128, seven. The next two numbers will 
vary from machine to machine but the 
last two will both be zeros. Ignore the 
zeros, they're more padding. This time 
the first letter of the variable name is 
directly represented by its ASCII value 
but the second letter still has 128 added. 
The next value is interesting count the 
number of letters in the string. Ah so! 

Treat the fourth and fifth figures as a 
two byte number and use this equation: 

PRINT CHR$(PEEK(fourth)+PEEK(fifth) 
"256) 

Substitute the values from your 
program for the words 'fourth' and 
•fifth'. 

It gives an "F". Enter the line again but 
put 1+ between the first bracket and the 
command PEEK. I think we've found it! 

Note that the computer reads the 
value from the program line. Why do 
locations 51 and 52 point to 40960? 

Replace line 10 with this: 



10 A$="FIND IT":B$= "YOURSELF":C$ 
A$+B$ 



Run the program and, in the words of 
the variable, find it yourself. 

Functional Storage 

Straight in the deep end with you: 

10 DEF FN AA(A)=PEEK(71|+256'PEEK<72> 
20 LOFN AA(0)-7 

Erase lines 30 and 40 and run the 
program. 

This time the first character is 
ASCII+128 and the second is straight 
ASCII. The third number plus the fourth 
multiplied by 256 gives the memory 
location which follows DEF FN AA(A)=in 
your program. PEEK it to make sure. 

In the definition we created a 
variable A as well as a function variable 
AA and the location of this variable is 
given by the next two bytes. As usual 
ignore the sixth number which is 
another zero. 



Pause for a while to appreciate the 
cleverness of the program which uses 
the function definition to find the 
location of variable A and then back- 
tracks seven places to get to the function 
entry. PRINT LO+7 should give the same 
value as the fifth figure plus the sixth 
figure multiplied by 256. 

In my next article I will be raising 
arrays and immersing you in floating 
point variables. 



Format of Integer Variables 

Byte Contents 

1 ASCII value of first character of 
name ♦ 128 

2 ASCII value of second character of 
name + 128 

High byte of integer value 
Low byte of integer value 
Not used 
Not used 
Not used 
r. 




at of String Variables 



Byte Contents 

1 ASCII value of first character of 
name 

2 ASCII value of second character of 
name + 128 

3 Number of characters in string 

4 Low byte of string storage address 

5 High byte of string storage address 

6 Not used 

7 Not used 

String variables can be up to 256 charae- 




mat of defined functions 



Byte Contents 

1 ASCII value of first character of 
name + 128 

2 ASCII value of second character of 
name 

3 Low byte of pointer to function's 
location 

4 High byte of pointer to function's 
location 

5 Low byte of pointer to function's 
internal variable 

6 High byte of pointer function's 
internal variable 

7 Note u 

unlimited 




59 



Communications 



Ce^on 
)anda. 



S S Ss .his pas. W^JSl as 
l^.-;Pow 0 n.o^enews--.ead 
I on! 

Prestel 



harsh, but I have man aged ^ ^ 
Celebmy Cha.l.ne m mpull ng 
,h ! ^ ,ha, P « 2 is l«** in « in '° 

guessed it- a keywo , d use 

?„,„ nn Commodore, 
info on «- keyword. 
•Commodore as my K Y w be 

,US ' Td and how much it's going 
; m CThe Pu".er '" any.hing, is no, 

Another .merest ng and 
File Box. This is a me' W o. 
retrieving files v., . he Preste^ „ , 
To use this (eatu-e. a P loaded 
software ™* " S box manager. The 
wh ich is ,h .f. .^'..experimental stages, 
| scheme is still in us exper ,i y 

| on l v available (or . he 

| file Box works WW ' „ have F ,le 
'„ hat us Commodore ^^ avajl 

Box volwarelw^ about File 

The very in ' e ' e , s !.'" B J, aud transfer is 
Box is that 1200 1 200 baud tr^^ 

being cons : de : e p re stel operate at 
are uploaded wedo ne ^ , 

well...! 



■ " publisher of 

Bigg-es' O-Arcy. now Put J" , 
Micronet, I«WJ Nel , i, makes 
happenings on the 

interesting ' eadin «„ anl points are-. D 
The iwo important P deve , op new 

Micronet is 8 0, "5.l lne emphasis on 
services this yea^ 0 ^, and 2, there 
more 'serious app'^a ^ , 

s^,*ss^ °— d 

important, and already n Sunday 

,ime of writing there J d , ne re 

supplement, ■tW^tT*. 
,/adve.t.s.ng appea^ns do ^ 

which has question;. 

n,iC '°h ^aSmTR doing this?'. 
■Should MICROnet , elres hing, 

Personally. > '"'"l" na Te complained, 
bu. some P eop '* ned M'Net lor micro 

adopted this • pM°«gS, a greater 
O'Arcy wants to d , nclu ding non- 
subscriber *W*MJ»j , hinU attract a 
micro Matures would, formuU 
ereater audience, win 
SorM We'll have » see^ Dungeon 
Mea T n\ho"tly be appearing on 
(M UD should sho '" y Net .s „wn version 

rowTdg^oin^obedisplayedinthe 
Pres.el style format. 



To^er of various 

objective being to makings 

lind. All software comP Sotlw a,e Park, 
and so on is ^'"^ computing and 
Club128.ncorpo« P fc wh 
business stuff, while i rf o|her 

you 1, fine P"^*^ being made as 
fea.ures. The move ss and , 

say i.^ a. o. better -nice one 

Radio Amatures CUt, « the ir way- 

and more new *f*" r f *£ nk wouldn't 
C NET's ^'^ 0 ^ nf F o a but?unde,stand 

being considered. 



Snippets 

- „ ^.it nt room! OK, 
Wow , I'm ' u " n ' n n 8 ew °Mul.i Use. Games 

here we go: T J~ n £ta-testing. The first 
based on a ^Jffi££. More info 

„d. The game is Y e° es an d 

mud, bu. has » n d , stinc , -them 

locations w-'h e.g. , ocal , 0 ns! 
areas, each with about « wh ich 
£20 will get YOU a_ »arter Pj wold 
includes rnap. hinw. iu ^ 
and 30 hours of P^YtnB Dlive No ..h 
SSittSSk* <or more info. 



The Big CNET Move! Logo f{ 



[Micronet 



manage. ^e^obert hich 

&r.i^^^ 



B^heiimeyoureadt^Compu-w]' 

b Y a ve undergone a J' who are 
organisation^, 'toe ° ^ cN[T 

no. on Compuneu « structure. 
ls o.gan.sed In a dir dedicated to 

^ril^uldhrSent situation by 
now. . - , P . 0 reanisation 



(ro m my ^^^wU^- 
BffrtSW Other info next 

S^ Jnd^nC contacted on the 

Gold/M-crolmk TZjM 
One-To-une — 



Suitable for virtually ALL computers with BW drives 
whether single or double sided. If a single sided drive, then you 
will be able to get twice the storage as you can flip these over. 





Only £*&&5 exc VAT 

<£>9.95 inc VAT per ten-pack) 



Specif ication:- 

These "bananas are reversible & 
double sided double density. This 
means that you can get TWICE the 
storage space with single sided 
drives, as these disks can be flipped 
over. They are of course perfectly 
suitable for double sided disk drives, 
and single density applications. 



Grown exclusively by:- 
DISKING 

FREEPOST 
Liphook 

Hants. GU30 7BR 



Access 










ViSA 



Tel: (0428) 722563 (24hr Order hotline) 



YC7 



POST to:- DISKING 

FREEPOST Liphook Hants GU30 7 BR 
Tel: (0428 722563) 

Please rush me boxes of bananas & £9.95 

per box (plus P Gf P at 50p a box) inc VAT 
Ten boxes or more - POST FREE 
Official Government orders welcome 
I claim my FREE 4 Go Bananas* badge with 
every ten-pack 
All orders despatched In 4 hours 

Name 



Address 



tel no: 



I enclose cheque payable to DISKING or please 
debit my Access /VISA card No:- 

If coupon clipped - JUST CALL 




Steve Carrie brings 


you an 


Editor 




>ler for your 



THIS UTILITY IS INTENDED 
for use on a Commodore 128 
system operating in 128 
mode. The program is fairly 
simple as assemblers go, but it 
could be useful to someone 
who perhaps cannot afford a 
more comprehensive package. 
Both tape and disk are 
supported as well as a 
printer. 

Before going on to 
describe the program in more 
detail I will give a brief 
overview. 

In 128 mode, the 
computer maintains two 64K 
banks of RAM (RAM 0 and 
RAM 1). There are a couple of 
common areas in the memory 
map to allow programs to 
operate correctly between 
banks. There are 16 
predefined memory con- 
figurations. Of these, BANK 
12 is used for this program. 
This is a combination of RAM 
0 from 0400-7FFF hex and the 
kernal ROM from B000 hex 
upwards. This allows the 
program to make direct calls 
to the kernal routines without 
having to go through a 
complicated bank switching 
routine. This area from 0000 
to 03FF hex is a common area 
in all banks. The source code 
is edited in RAM 1 from 
04000-FEFF hex (approx. 
62.75K) although the actual 
amount allocated may be 
altered. 



The assembler will allow 
code to be assembled in any 
of the predefined banks 
(actually only RAM 0 and 
RAM 1 are valid unless you 
have a 256K machine), and a 
limited relocation facility is 
provided. The Commodore 
machine language monitor 
(MLM) can be accessed at any 
time from the editor 
command mode. The MLM X 
command will re-enter the 
editor. 

The program will be given 
in two sections. In this article I 
will deal with the editor. 
When you have typed in the 
editor you may use any of the 
commands except C which 
calls the assembler. Without 
the assembler code the 
system will probably crash. 

The Editor 

First type in and save the small 
program RELOCATE. This 
program moves Basic to a 
higher address in RAM 0 so as 
to allow the assembler to be 
constructed in the correct 
place. 



Note 

You must always run this 
program before using the 
LOADER. 

Now type in and save the 
program LOADER. Usethisto 
enter the hex data from the 
main listing. It will be a long 
job so my advice is that you 
do it in stages. That way you 
won't get frustrated if you 
keep making mistakes. 

If you look at the main hex 
dump, you will see that each 
line has an address, a hex data 



string and a checksum value. 
When you run the LOADER, 
the menu will appear. 
Options two and three save 
and load the complete 
program area i.e. the memory 
occupied by both the editor 
and the assembler (which will 
be published in the near 
future). 

When asked for the start 
address, enter 1C01. If you 
save an incomplete version of 
the program and intend to 
resume at a later time, make a 
note of the next address you 
have to enter and use this 
when asked for the start 
address. When you have 
entered the whole program, 
type END.O to return to the 
menu. 

During entry the program 
uses the checksum to validate 
the input. It will request re- 
input if an error is found 
otherwise it will prompt you 
with the address of the next 
data string. 

Keep these two programs 
for use with the assembler. 

Running the Editor 

The program can be loaded 
and saved like a Basic 
program. Type RUN to enter 
the editor. A message is 
displayed and the computer 
locked into lower case mode. 
All commands must be 
entered in lowercase 
although uppercase may be 
used in source text. The 
assembler translates every- 
thing into lowercase anyway. 
The exception to this is the 
text directive which will be 
explained when you get the 
assembler. 



The Editor in 
Operation 

The operation of the editor is 
similar to that of the normal 
Commodore line editor, 
lines are entered with line 
numbers and the cursor keys 
may be used to move around 
the screen. 

When first starting out on 
the program, I suggest you 
think carefully about how big 
the source code is likely to be 
and allocate as necessary. 

Unlike the Commodore 
editor, this program does not 
remove spaces (max line 
length is 255 characters). This 
means that you can make 
your text more readable by 
indenting sections of code. 

A list of error messages 
follows. Most are self 
explanatory. 



Error Messages 

Invalid or badly formatted 
command. a 
Invalid sub-command. 
Line does not exist. 
Invalid or missing parameter. 
I/O error. 

Invalid/out or range line 
number. 

No source program. 

String too long. 

Search fails (not really an 

error). 

Out of memory (program too 
big!). 

Search string too long. 
Replace string too long. 
Illegal device specification. 
Cannot access device while 
printer is engaged. 
Not valid command for tape. 



ASSEMBLER 1 28 



The Editor Commands 



? 

A 
8 

C 

D 

E 

F 

I 

K 

L 

M 

O 

P 

R 

S 

T 



Display help message 

Aulo line numbering on/off 

Sel bottomof text memory in RAM 1 

Compile 

Delete block 

End Edit and exit to Basic 

Display memory allocation 

I/O 

Kill program 

List lines 

Enter monitor 

Recover (old) program 

Printer prefix 

Renumber lines 

Search (and replace) 

Set top of text memory in RAM 1 



Editor Commands in Detail 

? — Display help page. This displays a summary of the 
editor commands. 

A — Auto line numbering. This enables and disables 
the automatic line numbering during program 
entry. The format of the command is A 
<increment>as in A 10 which sets an increment of 
10. Auto numbering will commence from the last 
line number entered plus the increment. The 
operation of this command is similar in most 
respects to the Basic 7.0 auto command. 

B — Set bottom of text memory in Ram 1. Initially the 
allocation to the editor in RAM 1 is about 63KB. 
This command along with T alters that allocation. 
Addressing is done in blocks of 256 bytes, 
numbered 0 to 250. Giving the command B20 will 
set the bottom of text to block 20 (actual address is 
256*(block+4) therefore this address would be 6144 
decimel or 1800 hex). The message ARE YOU SURE 
is printed and the user must give the Y response 
before the relocation is carried out. This is done 
since this command destroys any program in 
memory. 

C — Compile. Details will be given with the assembler 
listing. 

D — Block delete. Format is D<start> — <end>as in D 

20-230. Deletes a block of lines. 
E — End edit and exit. The message ARE YOU SURE is 

printed and the user must give a Y response. This is 

donw since exiting the editor may destroy the 

program in RAM 1. 
F — Displays current text memory allocation and 

number of bytes free. 
I Input output. There are several forms of this 

command. 
I — Display I/O information 
IC — Display current device directory 
ID — set current device 
IN — Set current filename 
IS — Save file 
IL — Load file 



An important concept is that of the current device 
and filename. For example: 
Enter ID 
Editor responds 
CURRENT DEVICE =8 [DISK] 
ENTER NEW DEVICE> 
Enter 1 

Editor responds 

NEW DEVICE =1 [TAPE] OK. 

Now enter IN 

Editor responds 

CURRENT FILENAME ="" 

ENTER NEW FILENAME> 

Enter "test" including the quotes 

Editor responds 

NEW FILENAME ="test" OK. 

Now enter 1 

The editor prints the following: 
CURRENT DEVICE =1 [TAPE] 
CURRENT FILENAME ="TEST" 
PRINTER IS OFF 

When IS or IL is used the current device and name are 
used. Note that ID and IN may be used as follows: 
ID1 

IN"test" 

The IC command will displaythedirectory of the current 
device if it is a disk drive. 

IS and IL always load and save from/to the current 
base block as determined by the B command. These two 
commands will fail if no filename has been set or the 
printer is on. 

k — Kill program. Simply deletes the current file, 
Confirmation is required. The program may, 
under certain circumstances, be recovered with 
the O command. 
L — List lines. Format is <start>— <end>. Run/stop may 

be used to halt the listing. 
M — Enter MLM. Monitor's X command will re-enter 
editor command mode. 
Recover deleted program. 

Printer prefix. Prefixing most commands with this 
will cause output to be deflected from the screen 
to the printer. Will not work with IL,IS and IC. 
Renumber lines. Format is R<start>,<increment> 
as in R 10,20. 

Search. There are two different format to this 
command. 1. S "<siring1>",R"<string2>":<start>, 
<end> 

2. S "<stringl>";<start>,<end>. 
Form 1 finds every occurence of <stringl>and 
replaces it with string 2 . If * is used for<start>or 
<end> , scanning will be from/to the 
beginning/end of the file. 
Form 2 finds every occurence of <stringl>. 
Set top of RAM 1. Same type of parameters as 
B. Note that bottom cannot be greater than top. 



O - 
P — 



R - 



S - 



T — 



PROG 



RAM: RELOCATE 



10 BANK0:POKE16384,0 

20 POKE 46,64 

30 PRINT "(DOWN) NOW RUN 

LOADER "CHR$ (34) 

40 NEW 



CHR$(34) 



PROGRAM: LOADER 



10 DO 

20 SCNCLR 

30 PRINT "ASEM 128 HEX LOADER" 
40 PRINT 

50 PRINT "1. ENTER HEX DATA" 

60 PRINT "2. SAVE CURRENT WORK FIL 

E" 

70 PRINT "3. LOAD CURRENT WORK FIL 
E" 

80 PRINT "4. END" 

90 PRINT "(DOWN) PLEASE CHOOSE OPTI 
ON" . 

100 DO:GETKEYA$ :A-VAL(A$) : LOOP UNT 
IL A>0 AND A<5 
110 : 
120 : 

130 ON A GOSUB 1000,2000,3000 
140 LOOP UNTIL A-4 
150 END 

160 : 
170 : 

1000 REM ************************* 
*** * 

1010 REM HEX ENTRY ROUTINE 

1020 REM ************************* 

**** 

1030 : 
1040 SCNCLR 
1050 : 
1060 DO 

1070 : INPUT "ENTER ADDRESS (IN 

HEX) ";S$ 
1080 LOOP UNTIL S$<>"" 
1090 S-DEC(S$) 
1100 : 

1110 PRINT "NOW ENTER DATA AS IT I 
S PRINTED IN THE LISTINGS. THE CO 
MPUTER WILL PROMPT YOU WITH THE A 
DDRESS . " 

1120 PRINT "YOU SHOULD ENTER THE D 

ATA STRING FOLLOWED BY A CO 

MMA THEN THE CHECKSUM VALUE AT T 

HE END OF EACH LINE." 

1130 PRINT "ENTER ' END , 0 ' TO EXIT 

TO MENU. 

1140 : 

1150 PRINT 

1160 : 

1170 DO 

1180 : DO 

1190 : TT-0:H$- ,, ":C$-"" 
1200 : PRINT HEX$(S) 



INPUT H$.C$ 

IF H$-"END" THEN EX 



FOR X-l TO 64 STEP 

AD-(X-l)/2+S 
BY-DEC (MID$(H$,.X, 2) 

BANK0 : POKEAD , BY 

TT-TT+BY 

NEXT 



1210 : 
1220 : 
IT 

1230 : 
1240 : 
2 

1250 : 
1260 : 
) 

1270 
1280 
1290 
1300 

1310 : IF TT< >DEC (C$) THEN 

PRINT "DATA ERROR. RE-ENTER THIS 
LINE" 
1320 : 

1330 : LOOP UNTIL TT-DEC(C$) 
1340 : 

1350 : S-S+32 

1360 LOOP UNTIL H$-"END" 

1370 RETURN 

1380 : 

1390 : 

2000 REM ************************* 

* * * * 

2010 REM SAVE CURRENT WORK FILE 
2020 REM ************************* 

* * * * 

2030 : 

2040 GOSUB 5000 SETUP 
2050 PRINT "SAVING WORK AREA" 
2060 POKE 253,l:POKE 254,28 
2070 SYS DEC("FFD8") ,253.192,62 
2080 : 

2090 PRINT DS$ 
2100 SLEEP 2 
2110 RETURN 
2120 : 
2130 : 

3000 REM ************************* 
** ** 

3010 REM LOAD CURRENT WORK AREA 
3020 REM ******************** ***** 

* * * * 

3030 : 

3040 GOSUB 5000 SETUP 
3050 PRINT "LOADING WORK AREA" 
3060 SYS DEC("FFD5") ,0,1,28 
3070 : 

3080 PRINT DS$ 
3090 SLEEP 2 
3100 RETURN 
3110 : 
3120 : 

4000 REM ************************* 



ASSEMBLER 1 58 



***** 

4010 REM COLLECT DEVICE 

4020 REM ************************* 

***** 

4030 : 

4040 INPUT "DEVICE NUMBER ";D 
4050 INPUT "FILENAME " ; A$ 
4060 RETURN 
4070 : 

5000 REM ************************* 
***** 

5010 REM SETUP FOR LOAD/SAVE 

5020 REM ************************* 

***** 



5030 : 

5040 GOSUB 4000 
5050 BANK 12 

5060 SYS DEC ( "FFBA" ) . 1 , D , 0 
5070 : 

5080 SYS DEC ( "FF68" ) . 0 , 1 

5090 : 

5100 BANK 1 

5110 PT-POINTER(A$) 

5120 L-PEEK(PT) : LO-PEEK ( PT+1 ) : HI-P 

EEK(PT+2) 

5130 BANK 12 

5140 SYS DECC'FFBD") .L.LO.HI 
5150 RETURN 



LISTING 



1C01 101COAOOFE0231323A9E37313837000000004CB3234C1324080053303AOOOOOO 05B2 

1C21 0000000000000000000000000000000000000000000000000000000000000000 0000 

1C41 0000930E0B0D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A 04FD 

1C61 2A2A2A2A2A2A2A2A2A2A2A2A2A0D6153454D203132382E0D615353454D424C59 06EB 

1C81 204C414E475541474520454449544F522F434F4D50494C45522E0D634F4D4D4F 08AB 

1CA1 444F5245203132382056455253494F4E2E0D615052494C203139383620732E64 081B 

1CC1 2E632EOD615353454D424C4552202F20454449544F522056455253494F4E2031 0857 

1CE1 2E300D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A 052D 

1D01 2A2A2A2A2A2A2A2A2A2AODOD00930DOC8E454E44204F4620454449544F522045 06D0 

1D21 5845435554494F4E2EOD003F4144454B4C5253494F50434D425446008827D927 08F2 

1D41 09279227FB26A92561261C29DD2CFA2D632E3E302F2F7A2FA92F04300D415245 09CB 

1D61 20594F5520535552452028592F4E293F000D454449544F5220434F4D4D414E44 07F5 

1D81 533B0D4C205B4E5D5B2D4E5D20204C495354204C494E45530D52205B4E5D5B2C 0863 

1DA1 495D202052454E554D42455 2204C494E45530D41205B495D2020202020204155 07A6 

1DC1 544F204E554D424552494E47204F46462F4F4EOD44205B4E2D4E5D2020202044 07E7 

1DE1 454C455445204C494E45530D3F2020202020202020202048454C502028544849 06EC 

1E01 53204D455353414745 290D4520202020202020202020455849540D49 202020 20 0643 

1E21 202020202020492F4F20494E464F524D4154494F4EOD4944205B4E5D20202020 072D 

1E41 205345542043555252454E5420492F4F204445564943450D494E20223C535452 0821 

1E61 3E22205345542043555252454E5420492F4F2046494C454E414D450D49532020 07E0 

1E81 20202020202020534156452043555252454E542046494C450D494C2020202020 06D4 

1EA1 202020204C4F4144204E45572046494C450D4943202020202020202020444953 0683 

1EC1 504C4159204449534B204449524543544F52590D494920202020202020202049 075E 

1EE1 4E495449414C4953452043555252454E5420492F4F204445564943450D4B2020 0834 

1F01 20202020202020204B494C4C202844454C455445292043555252454E54204649 0742 

1F21 4C450D4F202020202020202020205245434F5645522041204B494C4C45442050 06E9 

1F41 524F4752414D0D53223C535452494E473E225B2C52223C535452494E473E225D 0888 

1F61 3A4E5B2C4E5D0D2E20202020202020202020534541524348202826205245504C 06AC 

1F81 414345290D4620202020202020202020444953504C4159204D454D4F52592053 0707 

1FA1 54415455530D5020202020202020202020454E41424C45205052494E5445520D 0726 

1FC1 4320202020202020202020434F4D50494C45 2028415353454D424C45290D4D20 06C3 

1FE1 202020202020202020454E544552204D4F4E49544F520D422020202020202020 0635 

2001 20205345542054455854204D454D4F525920424153450D542020 2020202020 20 0726 

2021 20205345542054455854204D454D4F525920454E440D00494E56414C4944204F 0804 

2041 52204241444C5920464F524D415454454420434F4D4D414E4400494E56414C49 0886 

2061 44205355422D434F4D4D414E44004C494E45 20444F4553204E4F542045584953 0857 

2081 5400494E56414C4944204F52204D495353494E472050415 2414D4554455 20049 0860 

20A1 2F4F204552524F52O0494E56414C49442F4F5554204F462052414E4745204C49 084D 



65 



20C1 4E45204E554D424552004E4F20534F555243452050524F4752414D0053545249 0884 

20E1 4E4720544F4F204C4F4E4700534541524348204641494C53004F5554204F46 20 0809 

2101 4D454D4F52590053454152434820535452494E4720544F4F204C4F4E47005245 087F 

2121 504C41434520535452494E4720544F4F204C4F4E4700494C4C4547414C204445 0861 

2141 564943452053504543494649434154494F4E0043414E4E4F5420414343455353 089D 

2161 20444556494345205748494C45205052494E544552204953202020454E474147 082B 

2181 4544004E4F542056414C494420434F4D4D414E4420464F522054415045003820 07D2 

21A1 5B206F208320A020AA20CB20DD20ED20FA2008211F21372154218421F600D002 0AE9 

21C1 F6O16OA9FFD600D500D002D6016078A000A986A2888DAA028EB9O2A20120D3F7 0F33 

21E1 A20120DAF75860A58A38E58485FDA58BE58585FE6085FB86FC20732220E821A5 11A0 

2201 8A85861865FB858A8588A58B858765FC858B858920CF21A28620C421A28820C4 102F 

2221 2120CF21A2FD20C421A5FED0EAA5FDD0E66085FB86FC20E821A584858638E5FB 1361 

2241 8588A5858587E5FC858920CF21A28620BD21A28820BD21A2FD20C421A5FED0EA 1191 

2261 A5FDD0E6A58A38E5FB858AA58BE5FC858B60A58A1865FBAAA58B65FCCD431C90 13CD 

2281 0FF0034C8C22EC421CB0F8A2094CEE2460A2008616861720F122B039290F48A5 0C73 

22A1 1748A5 164806 1626 17B02B06 1626 17B0256S1865 1685166865 1785 17B01806 16 07BE 

22C1 26 17B012681865 1685 16 A5 17690085 1720EB2290C560A2054CEE2478A20148A9 0B49 

22E1 828DB9026820DAF75860E63DD002E63EA000B13DC93AB00AC920F0EE38E93038 0F8F 

2301 E9D06078A201A98220D0F7586078A20148A9828DCS026820E3F75860A547A448 0FD5 

2321 8582848318A001200423F027A004C8200423D0FAC89865828584A0000820DC22 0CB8 

2341 28A5836900C80820DC2228A6848682858390D260A547A648A00 1858286832004 0D7A 

2361 23F027C8C8A517200E23901FF00388D00AA51688200E239012F0108820042385 0B65 

2381 8488200423A68438B0CE1860A20020CFFFC90DF00B9D000EE8D0F3A2074CEE24 0E69 

23A1 A9009D000EA900A20E853D863EA90D4CD2FFA53D48A53E48BA8E341CA906A20F 0C53 

23C1 8D20D08E21D085F1A943A01C201125A9008D401CA9FA8D411CA900A204854786 0D30 

23E1 48A9FFA2FE8D421C8E431CA547A64885828683186902858A8A6900858BA00098 0E1F 

2401 20DC22C820DC22A9002090FF8D361C8D351CAE341C9AAD301CF003208D2EA9 20 0C41 

2421 8DFA22AD361CF008AD351CF00320AB27208D2320F122F0DA9021A200DD2C1DF0 0DB9 

2441 OAE8E01090F6A2004CEE248AOAAABD3D1D8516BD3E1D85176C1600A9FF8DFA22 ODDF 

2461 2092222055230820F12228901E48A004200423C8C900D0F8981865828584A583 0BD1 

2481 6900858598A200203322688D351CC900F050A204AOOOB13DF004E8C8DOF8E88A 0E83 

24A1 8D331CA200A4828484A483848520F621AOOOA9FF20DC22C820DC22C8A51620DC OEDE 

24C1 22C8A51720DC22C88484A0008485A485B13DC88485A48420DC22C88484CC331C 0F56 

24E1 DOEC201D23A9008D2F1C4C13248AOA48A90D20D2FFA90720D2FF68AABD9F2148 0D1B 

2501 BDA021A868201125A90D20D2FF4C132484178516A000B116F00A20D2FFC8D0F6 0E24 

2521 E617DOF260A547A64885828683A001200423F00160A2064CEE24851684172049 0CE7 

2541 25A900A00E4C1125A00084888489A200A51638F9A1 2585 16A517C8F9A1 259007 0C80 

2561 8517E8884C512588A5 1679 Al 2585 168AD006248830061012A2808688093086FD 0C3B 

2581 A6899D000EE88689A6FDC8C8C00890BEA5160930A6899D000EE8A9009D000E60 0E84 

25A1 1027E80364000A0020262520EB22F04820922220552320F122F032C92DF0034C 0A56 

25C1 5C2620EB22F01D209222A58248A58348205523A5828586A58385876885836885 ODCA 

25E1 824C0426A9FF858785864C0426A5828586A58385874C0426A547A64885828683 0DF3 

2601 4CE525A001200423F02D203B2620E1FFF025A583C587900DF002B01BA582C586 0E31 

2621 90034C3826A00020042348C820042385836885824C04264C1324A00220042348 081C 

2641 C8200423A868203B25A004200423F00620D2FFC8DOF5A90D4CD2FFA2034CEE24 0DD4 

2661 20262520EB22F02B20922220F122F02BC92CD06E20EB22F069A51648A5174820 0CB5 

2681 9222A5168586A5 1785876885 176885 164CA426A90A85 16 A9008517A90A8586A9 0C59 

26 Al 008587A547A64885828683A001200423F02DC8A51620DC22C8A51720DC22A000 OCDE 

26C1 A586 1865 1685 16A58765 1785 17B0 16 20042348C820042385836885824CAC264C 0AE2 

26E1 1324A2032CA2054CEE24A95DA01D201125208D2320F122C9596020262520EB26 0A47 

2701 D0034CEC234C132420262520EB22F06C209222205523906720F122C92DD05D20 0B7E 

2721 EB22F058A5828586A5838587209222205523904BA00020042348C82004238583 0C48 

2741 688582A583C5879039F002B008A582C586902FF02DA58238E58648A583E58748 1092 

2761 A682A58686848582A683A5878685858368AA68203322201D234C1324A2032CA2 0D11 

2781 022CA2054CEE24A972A01D2011254C132420EB26D011AE341C9A68853E68853D 0AE3 

27A1 A90EA01D4C11254C1324A5 16 186D371C8516A5176D381C8517A51648A5 174820 08E7 

27C1 49256885 176885 16 A2OOBD000EF0069D4A03E8DOF586D06020EB22D0098D361C ODOA 

27E1 8D351C4C1324209222A516A6178D371C8E381CA9018D361CA9008D351C4C1324 0902 

2801 A00085828683B13DC922FOOA9182C8DOF5A20A4CEE24COOOF00160A2004CEE24 0F3E 

2821 18653D853DA53E6900853E6020EB22C922F0034C142920EB22A900A20C200128 0A4C 

2841 C0A09005A20A4CEE248C3A1CC89820212820F122C93AD008A9008D391C4CA628 0C5D 

2861 A2018E391CC92CF0034C142920EB22C952F0034C142920EB22C922F0034C1429 0B4F 



ASSEMBLER 1 S8 



2881 20EB22A900A20D200128C0A09005A20B4CEE248C3B1CC89820212820F122C93A OBBO 
28A1 F0034C142920EB22D0034C1429C92AF00A209222205523905DB00BA547A44085 0B63 
28C1 82848320EB22A5168588A517858920F122F035C92CD03C20EB22F037AAA58248 OFOE 
28E1 A58348E02AF00A2092222055239027B006A9FF85168517A516A6178D371C8E38 0C4A 
2901 1C68858368858260A5888D371CA5898D381C60A2002CA2024CEE24A9003D361C 0C2F 
2921 8D351C202D28A00020042399000BC8C00490F5A2008E3F1C8E3D1C2004239900 0941 
2941 0BF009EE3D1CEE3F1CC8D0EFEE3F1CA904A20B853D863EA2008E3E1CAE3D1CEC 0DC1 
2961 3A1CB0034C752AAOOOB13DD9000CD008C8CC3A1C90F3BOOBCE3D1CEE3E1CE63D 0CF9 
2981 4C5D298C3C1CAE331CD0034C4F2AA200BD000B9D000EE8E00490F5A200EC3E1C 0B9F 
29A1 F009BD040B9D040EE8DOF2AOOOA90E853EB9000D913DC8CC3B1C90F59818653D 0D8E 
29C1 8586A53E8587A53D186D3A1C853DA90B853EA000B13D9186F003C8D0F7AD3F1C 0E1F 
29E1 186904481865828584A5836900858568A200203322A204BDOOOEF003E8DOF8E8 OCEB 
2A01 8AA200A4828484A483848520F621A000B9000E20DC22C8C00490F5B9000E0820 0D46 
2A21 DC2228F003C8D0F3A58248A58348201D23AD020EAC030E203B25A92020D2FFA9 0D40 
2A41 04AOOE201125A90D20D2FF189020A58248A58348AD020BAC030B203B25A92020 0A33 
2A61 D2FFA904AOOB201125A90D20D2FF688583688582AD020BCD371CD008AD030BCD 0D3F 
2A81 381CF019A00020042348C82004238583688582A001200423F0034C2729AD3C1C 098E 
2AA1 F0034C1324A2084CEE24C901FOODC9089004C90C9005A20C4CEE246020F122C9 0C7C 
2AC1 22D0 16 20EB22A91EA21C20DF2AC010B0088C1A1CA9009 18260 A2034CEE24A000 OBEC 
2AE1 85828683B13DC922F018C900F0149182C8C01090EFA2072CA203A9008D1E1C4C 0E1E 
2B01 EE24C000F0F260AD191CC901D00160AAA90FA820BAFFA20CA9012068FFAE1A1C 0E97 
2B21 E8E8E88AA21BA01C20BDFF20C0FFB00520B7FFF01220E7FFAD191CC901F00320 10C8 
2B41 412EA2044CEE24600D43555252454E54204445564943453D000D454E54455220 08BB 
2B61 4E4557204445564943453E000D43555252454E542046494C454E414D453D2200 07E8 
2B81 454E544552204E45572046494C454E414D453E00204F2E4B2EOD004E45572044 0798 
2BA1 45564943453D004E45572046494C454E414D453D22000D4C4F4144494E472046 07C4 
2BC1 494C452022000D46524F4D2044455649434520000D534156494E472046494C45 0762 
2BE1 2022000D544F20444556494345 2000205B544150455D00205B4449534B5D0050 0737 
2C01 52494E54455220495320004F46460D004F4EODOOAD191C48A000203B2568C901 07BE 
2C21 F007A9F8A02B189004A9F0A02B4C1125A91EA01C201125A9224CD2FFA949A02B 0D73 
2C41 2011254C152CA96DA02B20112520312CA90D4CD2FFA900A02C201125AD301CD0 09FE 
2C61 07A90CA02C4C1125A911A02C4C112520EB22D012203D2CA95AA02B201125208D 097B 
2C81 2320F122F020209222A517D01CA51620AB2A8D191CA99CA02B20112520152CA9 0AC4 
2CA1 95A02B2011254C1324A20C4CEE2420EB22D00D20472CA981A02B201125208D23 09FD 
2CC1 20BD2AA9A8A02B20112520312C4CA02C203D2C20472C20562C4C132420EB22DO 094C 
2CE1 034CD12CC944D0034C702CC94ED0034CAF2CAE301CF005A20D4CEE24C953D003 0D10 
2D01 4C1C2DC94CD0034C8D2DC943D0034C9B2EC949D0034C232F4C13242026 25AD1E 0AB3 
2D21 1CD005A2034CEE2420082BAD191CC901D00320E9E9A9D5A02B2011 252031 2CA9 0B7D 
2D41 E4A02B20112520152CA90D20D2FFA00120702DA547A44885168417A916A68AA4 OCOC 
2D61 8B20D8FF20872DA90D20D2FF4C1324A901A20C2068FFAE191C20BAFFAD1A1CA2 ODAO 
2D81 1EA01C4CBDFFB001604C362BAD1E1CD005A2034CEE24A547A44885828483A001 0CE6 
2DA1 200423F00520EB26D03AAD191CC901D00320C8E9A9B7A02B20112520312CA9C7 0C35 
2DC1 A02B201 12520 152CA00020702DA900A647A44820D5FFBOOF868A848BA90D20D2 OBDB 
2DE1 FF201D234C1324A547A44885828483A900A00120DC224C362BA547A448858284 0C40 
2E01 83A001200423FOOAA92DA02E2011254C1324A001A9FF20DC22201D23A5821869 0A51 
2E21 02858AA5836900858B4C13240D50524F4752414D205245534944454E540D0049 092E 
2E41 A90FAE191CA820BAFFA901A20C2068FFA901A240A02E20BDFF20COFFA90F20C3 OEAB 
2E61 FF60AD301CD025A904AAA00720BAFFA90020BDFF20COFFB010A9018D301CA204 0E71 
2E81 20C9FF20EB224C34244C132420CCFFA90420C3FFA9008D301C60A901AE191C20 0C45 
2EA1 192FA00020BAFFA901A20C2068FFA901A218A02F20BDFF20COFFB04920B7FFDO 0F2D 
2EC1 44A20120C6FF20092F20092F20092F20092FF02620092F20092F20092FF0ED09 08F0 
2EE1 22DOF720092FFOOAC922FOF720D2FF4CE42EA90D20D2FF4CCD2E20CCFFA90120 OFFF 
2F01 C3FF4C13244C362B20CFFFBOF84820B7FF29BFDOF0686024E001F00160A20E4C 0F68 
2F21 EE24AE191C20192F20412E4C1324A948A22FAC000A8C311CAC010A8C321C8D00 08DE 
2F41 OA8E010A4COOBOA9068DOOFFAD311CAE321C8DOOOA8E010AA963A02F2G11254C 097D 
2F61 13240D654449544F522F415353454D424C455220312E300D0020EB22C900F023 08BD 
2F81 209222A517D01C20D42FC9FBB015CD411CF002BOOE8D401C6904A20085488647 0C94 
2FA1 4CEC23A2034CEE2420EB22C900F0F4209222A517D0ED20D42FC9FBB0E6CD401C 102B 
2FC1 90E18D411C186904A2FF8D431C8E421C4CEC23A5164820EB26F0034C1 3246860 0C26 
2FE1 54455854205350414345203D0020424C4F434B532C0020425954455320465245 07DC 
3001 450DOOAD411C38ED401C18690148A9E1A02F20112568A000203B25A9EEA02F20 0A64 
3021 1125AD421C38E58A48AD431CE58BA868203B25A9F7A02F2011254C1324202625 OAEF 



Tony Crowther 



shows how to speed 



up the C128 in C64 



mode. 



WHEN COMMODORE 
launched the C128 computer 
they said that it had a C64 
computer inside it. They 
claimed at the time that this 
was completely compatible 
with the normal C64 com- 
puter. Well, time has demon- 
strated that it isn't, as many 
programs will not work on the 
C128. Obviously there must 
be some differences between 
the normal C64and the one in 

the cm 

The differences don't only 
have to be a bad point. It is 
possible to use some of them 
to your advantage if you 
know what you are doing. 

As you probably know the 
C128 has a FAST instruction 
that blanks the screen and 
causes it to run in 2MHz 
mode. You probably didn't 
know that this fast mode is 
also available from the C64. 
Below are two example 
programs that will allow you 
to use this 'bug' to your 
benefit. For each program I 
have supplied an assembly 
listing for those of you who 
wish to know how they work. 
I use the Machine Lightning 
assembler, but for those who 
simply wish to use them I have 
included a simple Basic 
loader that will SAVE the 
machine code on to your disk 
or tape. If you are using tape 
then change the ,8,1 after the 
SAVE"name" in each loader 
to ,1,1. 






Program 1 



This machine code program 
when activated by SYS 49152 
will access the C128's 2MHZ 
processor so that the execu- 
tion speed of the C64 is 
changed from .9Meg to 
1.2Meg with full screen 
display. The program doesn't 
finish there however. By 
pressing the 'F7' key the 
screen is blanked out from 
the bottom up. By blanking 
more of the screen it is 
possible to alter the speed of 
the C64 from 1.2Meg up to 
2Meg. The greater the 
amount of screen blanked the 
faster the program. The 
screen can be unblanked by 



pressing the 'F8' key slowing 
the C64 down. 

Note when this program is 
running you will lose the 
ability to talk to any peri- 
pherals. Therefore hit RUN 
STOP/RESTORE to quit. If at 
this point the screen goes 
funny then either hit the 
RESET button or type the 
following line in blind: 
POKE 53296,252. 
RUN STOP/RESTORE does 
not always reset the 2Meg 
latch as this is inside the C128 
and not the C64, hence the 
need for this POKE to reset 
the latch to normal. 

Both of the programs in 
this article can be used on the 
128 if you alter the interrupt 
vectors at $314 and $315. 



Don't attempt this unless you 
know what you are doing. 

Program 2 

This program works in a 
similar fashion to the above 
program. However, this time 
the screen is blanked from 
the top down, not from the 
bottom. Blanking in this 
program is also much quicker 
than the other version of the 
program. 

So what use are these 
programs? You could use the 
routines to improve the 
speed of calculation 
programs. Who knows we 
may even start to get 
programs that have a faster 
mode for C128 computers. 



PROGRAM: 1 CODE 



10 




*=4C0B0 


20 


SHIFT 


= 1 


30 


SHIFTKEY 


=653 


40 


CHECKKEY 


= 137 


50 


FUNCTI0N7 


=3 


68 


RASTER 


^53266 


70 


SCREENBLANK 


=53265 


•80 


BLANK 


= 123 


90 


NORMAL 


=27 


100 


SCREENTOP 


=50 


110 


MEGABIT 


=$0030 


170 


ON 


=*FD 


130 


OFF 


=*FC 


MB 


NORM IRQ 


=59953 


15B 


LEAUEIRQ 


=60033 


160 


JMPUECIRQ 


=78B 


170 


TIMERP 


=56334 


180 






190 




■ 


200 




ORG 


210 







220 
230 
748 
250 
260 
270 
780 
290 
300 
310 
320 
330 
340 
350 
360 
370 
380 
390 
430 
410 
420 
- 430 



5tART 



SEI 

LDA 
STA 
LDA 
STA 

LDA 
STA 



■IRQ&25S 
JMPUECIRQ 
*IR0/2S6 
JMPUECIRQ*1 

•0 

TIMEPA 



LDA ■NORMAL 
STA SCREENBLANK 

LDA *1 

STA 53273 
STA 53274 

t 

LDA *250 

STA MCUINGRAST 

» 

CLI 



450 
460 
470 

480 IRQ 

490 

500 

510 

520 

530 

540 

550 

560 

570 

580 

590 

600 

610 

620 

630 

640 

650 

600 



■ 

i. da m 

STA 53273 

■ 

INC COUNT 
LDA COUNT 
BNE IRQPART2 

lDA "NORMAL 
STA SCREENBLANK 

LDA "OFF 
STA MEGABIT 

1 * "* 

LDA MOUINGRAST 
STA RASTER 

■ 

PLA 
TAY 
PLA 
TAX 



680 




PLA 




260 


a ant 




QT T 

Kl 1 




^70 


Tin 

/ /0 




■ 




28B 


730 


IRQPART £ 


i nfl 
LUn 


-Dl AkllS 


290 


T >1 




CIO 

b IM 


CPDPPWRl A*Jtf 


300 






■ 
• 




310 


700 




1 OA 

LUn 


•Uri 


320 


770 




b 1 n 


MCI7AQ I T 


330 


inn 
/OB 




• 
• 




340 


790 




l n/\ 
LDA 


"bLKfcfcn lUr 


350 






b 1 n 


DOC ICO 

Knb i tK 


360 


810 




1 




370 


~ , 




LUn 




300 


830 




bin 


luum i 


390 


840 




I 




400 






i cp 




410 


of a 




* 




lift 

9*:0 


aim 




IMP 

JI W 


WflPM I PP. 
HUM 1 1 


•»30 


300 




• 




4*10 










450 


ato 




unr 


■pi imp 1 t r\M7 


460 


3 JO 




one 




470 


CI .'. i? 




• 
> 




480 IRQ 






LUA 


bH Ir IKtY 


490 


nan 

960 




AND 


■SHIFT 


583 


970 




BEQ 


NOSHIFTKtY 


510 


306 








520 


4 ^ 'A 




LUP 


Mill (TfclODAtf^T 

nUUlNbKAb T 


530 


I C<CO 




TMP 


— eo 

- . ■ ■ 


j40 


(At A 
1010 






tKKUK 


550 






• 

• 




inn 


J Is Jo 




ncr 


i iuv i riunna i 


570 


1 Aj* A 

. . -1 




1 CO 

JbK 


LntLKr UKUnn 


580 


. - _ i ■ 




ore 

Dl>3 


i nnp i 

LUUr 1 


530 


- oQt 




I 




600 




FRROR 


PTC 




610 


1 (JQH 




• 




620 


'. B9fl 




! 




630 


1 1 fSQ 
1 1U0 


NUbplr 1 Kti 


i n a 
LUn 




810 


1110 




LMr 




652 








tKKUK 


6A0 


1 130 




• 




670 


1140 


LOOP 2 


INC 


nUUINGRAST 


680 


1 1 J0 




1 CP 

JbK 


LntLUr UKUnn 


690 


. . ' l 




arc 
oLb 


i fine? 
LUUr t 


700 


1 1 /0 




r 




710 


1 1 HP 




pre 




720 


1 • JO 




■ 




730 


1 ' J>» 

1 , r. i. 




t 




740 






* 




758 


1 ?7R 


'>•*■.■ in 


1 DA 


MflUlNRRA^T 
i iuvi riurvns i 


760 






Aton 
nr«u 




770 


1 i^H 




run 


ml 


780 


■ fan 






nuunM 


790 


1 Oca 




■ 
• 




B00 IRQPART2 


127H 




(— r— t~ 

SEC 




810 


1 288 




RTS 


■ 


820 


1290 




* 




830 


. -i V 


bin nMA 

NUUpn 


CLC 




848 


i Jib 




RTS 




850 


1320 




*: 




860 


1330 




; 




878 


1340 


MOUINGRAST 


.BYTE 0 


B80 


1350 


COUNT 


.BYTE 0 


898 


1360 




• 






1370 




• 




tl 10 






. ■ 


■j.'W 


PROGRAM: 2 CODE| 


930 
940 
958 


10 




x=*C000 


9R0 


20 


SHIFT 


=1 




970 


30 


SH1FTKEY 


=653 




980 


40 


CHECKKEY 


-197 




S30 


50 


FUNCTI0N7 


=3. 




1000 


60 


RASTER 


=53266 


1010 


70 


SCREENBLANK 


"53265 


1 oe.<o 


80 


BLANK 


= 123 




!■ .•> rKLbbr/ 


90 


NORMAL 


= 27 




1 n^n 


100 


SCREENBOTTOfl 


= 250 




1 030 


110 


MEGABIT 


=*D03fi 


1000 


120 


ON 


= *FD 




10/0 


130 


OFF 


= $FC 




1080 


140 


NORM IRQ 


=59953 


1090 


150 


LEAUEIRO 


=60033 


1 100 


160 


JMPUECIRQ 


=788 




1110 


170 


TIMERA 


=56334 


1 1 Z0 


180 




• 
■ 




1 1 J0 


130 








1148 


200 




".ORG 


»C000 


1 lbU 


210 




- 




1160 ERROR 


220 


START 


SEI 




J170 


230 




P 




!180 


740 




LOA "1RQ8.255 


1 130 NOSHIFTKEY 


250 




STA i 


IMPUECIRQ 


1200 



LOA "IRQ/256 
STA JMPUECIRQ^l 

LDA "8 
STA TIMERA 

LDA ^NORMAL 
STA SCREENBLANK 

LDA •! 

STA 53273 
STA 53274 

LDA -1 

STA M0U1NGRAST 

* 

CLI 
RTS 



LDA «1 

STA 53273 

INC COUNT 
LDA COUNT 
BNE IRQPART2 

■ 

PHA 
PHA 

PHA 
PLA 
PLA 
PLA 

LDA "OFF 
STA MEGABIT 

LDA "SCREENBOTT 
STA RASTER 

LDA "NORMAL 
STA SCREENBLANK 

PLA 
TAY 
PLA 
TAX 
PlA 
RTI 



LDA "BLANK 

STA SCREENBLANK 

LDA «0N 
STA MEGABIT 
• 

LOA MOU I NGRAST 

ASL A 

ASL A 

ASL A 

CLC 

ADC "50 
STA RASTER 

LOA «255 
STA COUNT 

JSR PRESSF7 

* 

J MP NORM IRQ 



LDA CHECKKEY 
CMP "FUNCTI0N7 
BNE NOKEYPRESS 

LDA SHIFTKEY 
AND "SHIFT 
BEQ NOSHIFTKEY 

LDA MOU I NGRAST 
BEQ ERROR 

* 

DEC MOU I NGRAST 

* 

RTS 



LDA MOUINGRA? 
CMP "24 



1210 
1220 
1230 
124e 
1250 
1260 
1270 
1280 
1290 
1300 
1310 
1320 



NOKEYPRESS 



M0U1 NGRAST 
COUNT 



CG4 



BEQ ERROR 

INC MOU I NGRAST 

■ 

RTS 



.BYTE B 
.BYTE Z 



2000 FOR L=0 TO 9:CX=0:FOR D=0 TO 15 
:READ A:CX=CXtA:POKE 49152*L»16+D.A 
:NEXT D 

2010 READ A: IF AOCX, THEN PRINT ERROR 

IN LINE":2040 + CL*!8):STOP 
2020 NEXT L 

2040 DATA 120,169.36.141.20.3.169,192. 

141 .21.3,1.69,0.141 ,14.220.1559 
2050 DATA 169.27.141.17.208.169.1.141. 

25,288.141 .26.208.169.258.141 .2041 
2060 DATA 155.192.88.96.169.1.141.25. 

208 .239 . 1 56 . 1 92 . 1 73 . 1 56 . 192 .208 . 

2390 

2070 DATA 22.169.27.141.17.208.169. 
252.141 .48.208.173.155.192.141 .18. 
2081 

2080 DATA 208.104.168.104.170.104,64. 
169.123.141 ,17.208.169.253.141 .48. 
2191 

2090 DATA 208.169.50.141.18,208.169. 
255.141 ,156.192.32.97.192.76.49, 
2153 

2100 DATA 234.165.197.201.3.208.38. 

173.141 .2.41 .1 .240.16.173.155.1988 
2118 OATA 192.201.58.240.8.206.155. 

192.32.142.192.176.248.96.173.155. 

2466 

2128 OATA 192.201.250.240.248.239.155. 
192.32.142.192.176.248.96.173.155. 
2930 

2138 DATA 192.41,7.201.3.208.2.56,96. 

24 .96 . 0 . 0 ,0 , 255 .255 , 1 436 
3000 REM xx READY FOR SAUE XX 
3010 PRINT "C CLEAR .D0UN2 .SPC23DATA 

OK PRESS SPACE TO SAUE" 
3020 GET Kt: IF K*<>' "THEN 3020 
3030 POKE 43.00:POKE 44,192 

:P0KE 45,I6l:P0KE 46,192:CLR 
3040 SAUE "PROG t CODE ,8,1 



2000 FOR L=0 TO 9:CX=0:FDR 0=0 TO 15 
:READ A:CX=CX*A:POKE 49152+Lxl6+D.A 
:NEXT D 

2010 READ A: IF AOCX THEN PRINT 'ERROR 

IN LINE :2040*CLX10 USTDP 
2328 NEXT L 

2040 DATA 120.169.36.141.70.3.169.192. 

141 .21 .3.169.0.141 .14.220.1559 
2850- DATA 169.27,141 .17,208.169,1 .141 , 

25.208.141 ,26.238.169.1 ,141 ,1792 
2068 DATA 142.192.88.96.169.1,141.25. 

208 , 238 . 1 43 . 1 92 . 1 73 . 1 43 . 1 92 , 288 , 

2351 0 
2070 DATA 27 .77 .72 ,72 . 104 . 1 04 . • 04 . 169 , 

252.141 .48,208,169.250.141 ,18,1951 
208* DATA 208.169.27.141.17.208.104. 

1 68 . 1 04 . 1 70 . 1 04 .64 . 1 69 . 1 23 . 1 4 1 . 1 7 . 

1934 

2090 DATA 208.169.253.141.48.208.173, 

142,192.10.10,10.24.105.50.141 .1884 
2100 DATA 18.206.169.255.141 ;143. 192. 

32,189.192.76.49.234.165.197.201 . 

2381 

2110 DATA 3,208.76,173,141,2,41,1.240. 

9.173.142.192.240.3.286.1800 
2120 DATA 142.192.96.173.142.192.201. 

24 ,243.248.238.142,192.96.0.8.2318 
2130 DATA 192.41.7.201.3.288.2.56,96. 

24 . 96 .0 .0 ,0 .255 .255 . 1 436 
3880 REH xx RF.ADY TO SAUE xx 
3018 PRINT "t CLEAR .D0UN2 ,SPC2 1 DATA 

OK PRESS SPACE TO SAUE" 
3028 GET Ki: IF K4<>" " THEN 3020 
3048 POKE 43. 00: POKE 44.192 

:P0KE 45,148:P0KE 46.197:CLR 
3850 SAUE "PROG 2 CODE" .8,1 



t,9 



Gary Herman brings you the 



first part of a series which will 



show you how to make the 



most of your C64's musical 



talents. 




IT'S A FREQUENTLY REPEATED FACT 
that Commodore Basic is the worst thing 
about the 64. From a musical point of 
view, all the instructions are realised as 
POKEs (or PEEKs in some instances) to 
memory locations corresponding to 
particular registers on the machine's 6581 
programmable sound generator. 

This makes for a relatively easy 
transition to machine-code programming 
— a topic we'll be dealing with in detail 
later in the series since sound synthesis 
and music programming are more 
effective as you get closer to the hardware 
level. An introduction to Basic techniques 
is useful because the 64 sound commands 
are already very close to the hardware 
level. Unless you use a Basic extension, a 
high-level language or music utility, 
music programming in Commodore Basic 
will inevitably bring you to within spitting 
distance of the computer's hardware. This 
is not the case with any other popular 
machine. 

For Basic use, all you really need to 
know is that location 54272 corresponds 
to register zero on the 6581 chip and the 
locations, like the registers,are numbered 
in steps of one upwards. This is because 
the 6581 sound interface device is 
memory-mapped. It is addressed at 
location D400 HEX (54272 DECIMAL). That, 
is. the chip is enabled when address lines 
A15, A14, A12 and A10 are all high. The 
lines AO to A4 are then used to address 
SID's registers. While there are 32 possible 
addresses using AO to A4, SID actually has 
only 29 registers. The last three addresses 
(54301, 54302 and 54303 — or, in hex, 
D41D, D41E and D41F) are not used. 

In general, POKEing a memory 
location can best be understood as setting 
certain data lines high and others low, 
There are three independent sound 
channels on the Commodore, each one 
requiring at least five and at most seven 
different locations to be POKEd. Then 
there are seven locations which relate to 
all three channels - three write-only 
locations and four read-only locations. 
The write-only locations are the SID 
registers used to set up the sound you 
wish to produce. Setting up the sound is 
just a matter of POKEing the right data 
into the right location. 

Typically, the procedure is first to 
POKE location 54296 with a volume 
setting which, as it were, sets up all the 
channels. This setting is a value between 
zero (off) and 15 (maximum). Thus 54296 



GOING FOR 
A SONG 



can be divided into two nybbles (four bit 
numbers), the least significant or right- 
hand nybble comprising bits number 
three, two, one and zero of the byte 
addressed at location 54296. POKEing 
542% with, say, nine sets bit three high (1 ), 
bit two low (0), bit one low (0) and bit zero 
hieh (1). This gives 1001 as our nybble, in 



ioo rem itiiiiiimmiitittitiiitiiii 

110 REM UUISTING IttUttltttlltltttl 
120 REM IIIENVELOPE USING BASIC LOQPIt 
130 REM ft (LINEAR DECAYIIUIIIIIUUII 
140 REM ttftlttttttftttfttfftftffttffl 

150 S=54272:L=S:H=S*I:N=S+4:A=S+5:R=S+ 
6:V=S+24 

160 Y=15:F=34:E=240:Q=33:X=10 

170 FOR P=0 TO 24:PQKE S+P,0:NEXT 

1B0 POKE R,E:PDKE H,F:P0KE H.Q 

190 FOR P=l TO 40:Y=Y/1.06:P0KE V,Y:NE 

XT 

200 POKE H,0 



READY. 



READY. 



Program Listing 1 



100 REHunnnntumnminmnn 

110 REM 1 1 1 L I ST ING 21UII UU lit tllU It 
120 RENIIINATURAL DECAYttt tf tttttttttt 

130 REHiiiitiiiitiiiuiiiuiiiiitiuit 

140 S=54272:L=S:H=S+1:M=S*4:A=S*5:R=S+ 
6:V=S+24 

150 Y=30: F=34: E=240: Q=33: X=l 0 

160 FOR P=0 TO 24:P0KE S*P,0:NEXT 

170 POKE R,E:PQKE H,F:P0KE H,9 

180 FOR P=l TO 60:P0KEV,Y-3.31L0B(P):N 

EXT 

190 POKE N,G 

Program Listing 2 



binary code, and 1001 binary isequivalent 
to nine decimal. The other, high order, 
nybble at location 542% is made up of the 
four most significant bits of the byte — 
numbers seven, six, five and four. Setting 
six, five and four high or low has the effect 
of switching on or off one of the 6581 
chip's filter modes. Setting bit seven high 
or low has the effect of turning off or on 
the audio output of channel three. 

Having set a volume, you must then 
select the desired channel for output and 
POKE the two associated locations with 
. 



ioo rem mmmtmuuutummu 

110 REM UILISTIN6 3ttllllllllllltll!l 
120 REM IIITUNE HITH NOTE DURATION!!!! 
130 REH t tt tVARI ABLE T FIXES TEMPO! Ill 
140 REH IIIIA,Bl<C SET FREQ & DURATION! 
150 REM lltttlltlllllllllllttlltllltll 
160 POKE 54296, 15:P0KE 54277,9: POKE 5 
4278,33 
170 READ A,B,C 
1B0 T=20 

190 IF A=0 THEN END 

200 POKE 54273, A: POKE 54272,B 

210 POKE 54276,17 

220 FOR P=l TO TtCrNEXT 

230 POKE 54276,0 

240 FOR P=l TO T:NEXT:REM UIDELAYIII 
250 60T0 170 

260 REH IHDATA:HI FREQ, L0 FREQ, DURATI 
0NII 

270 DATA 19,63,20,21,154,20,17,37,30,8 
,147,15,12,216,40,0,0,0 

READY. 



SEARCHINB FOR 4. LISTINB4. LIST IN6 



Program Listing 3 



too Ren timmmmt 

110 REM ttf LISTIN6 4111 
120 REN MIT SETSHI 
130 REM Itl TUNING III 

140 reh tmnmmm 

150 PRINT CHRM147); , WIT':T=100:K=0.5 

:REN TEMPO AND TUNIN6 

160 DIH F$(3,99),HF(3,99),LF(3,99),DI3 

,99) 

170 DIH N(14),DU(3),HF{3),F»I(3),EN(3) 

180 FOR 1=1 TO 14: READ NIX) : NEIT 

190 60SUB 440: POKE 54296,15 

200 FOR V=l TO 3 

210 READ AD,SR,HP,lP,Fti(v) 

220 POKE AD(V),AD:POKE SR(V) ,SR:P0KE P 

H(V),HP:P0KE PL(V),LP 

230 NEIT V: 1=1 

240 FOR V=l TO 3: READ F$,D(V,I) 

250 IF F$='R" THEN F=0:G0T0290 

260 IF FS=M" THEN EN (V) =1 : 0=0*1 : 60T03 

00 

270 0C=VAL(RI6HT»(F$,1)) 

280 F=N(2t(ASC(LEFT$(F$,ll)-64)*(lEN(F 

i)=2)):F=FI2 A (QC-4) 

290 HF(V,I)=INT(F/256):LF(V,I)=F-HF(V, 
1)1256 
300 NEXT V 
310 1=1+1 

320 IF 0=3 THEN 340 
330 60T0 240 
340 FOR K«1 TO I 

350 POKE MF(1),0:P0KE MF(2),0:P0KE NF( 
S! t O 

360 FOR V=l TO 3 

370 POKE FH(V),HF(V,K):POKE FL(V),LF(V 
,K) 

380 POKE HF(V),FN(V) 
390 NEXT V 

400 FOR P=l TO T:NEXT 
410 IF Z=3 THEN END 
420 NEXT K 
430 END 

440 S=54272:F0R X=l TO 3:CH=7I(X-1) 
450 FL(X)=S+CH:FH(X)=FL(X)+1:PL(X)=FH( 
X)*1:PH(X)=PL(X)*1:NF(XJ=PH(X)*1 
460 AD(X)=NF(X)+I:SR(X)=AD(X)*1 
470 NEXT: RETURN 

480 RENU 'FREQUENCY DATAtttltltUUtU 

mmm 

490 DATA 7381,7818,8271,0,4378,4647,49 
15 

500 DATA 5217,5519,0,5855,6207,6576,69 
62 

510 REHtllENVELOPE, PULSE AND WAVEFORM 
DATAUtlt 

520 DATA 40,40,7,255,17 
530 DATA 9,127,7,255,65 



540 DATA 9,255,7,255,17 

550 REMIMNOTE DATAtliUtUIUUUItM 

mmm 

560 DATA A4,8,A4,8,A5,8,C4,12,C4,12,C4 

570 DATA A4,4,A5,4,A4,4,F3,16,F4,16,F4 
,16 

580 DATA D4,8,D4,B,D3,8,C4,24,C3,24 f C4 
,24 

590 DATA A4,8,D2,8,A3 ( 8,L3,12,E3,12,C4 

600 DATA A4,4,D2,4,A5,4,F4,16,C2,16,F5 
,16 

610 DATA D4,8,D4,8,D5,8,E4,8,E4,B,E5,8 
620 DATA C4,8,C4,8,C5,8,B4,8,B3,B,B4,8 
630 DATA C4,4,C4,4,C4,4,D4,4,D3,4,D4,4 
640 DATA E4,4,G3,4,E4,4,F4,4,F3,4,F4,4 
650 DATA G4,4,G3,4,G3,4,A4,4,A3,4,A4,4 
660 DATA AI4,8,At4,8,A#4,8,D4, 12,05,12 
,64,12 

670 DATA AI5,4,AI4,4,AI3,4,A5,16,A4,16 
, A3, 16 

680 DATA G4,8,G3,8,D4,8,FI4,24,Ft4,24, 

D4,24,G4,24,G3,24,D4,24 

690 DATA G4,8,64,8,G3,8,A4,12,C4,12,E4 

,12,64,4,E4,16,C4,8 

700 DATA C5,8,C4,8,F3,8,C4,8,C4,8,C4,B 

,F4,4,F4,4,F4,4,A4,4,A4,4,A4,4 

710 DATA C5,4,C5,4,C5,4,At4,4,C5,4,AI4 

,4,G4,4,E4,4,C4,4 

720 DATA A4,8,A4,8,A4,8,C5,12,C4.12,F4 
,12,A4,4 

730 DATA F4,16,F3,16,F4,16,D4,8,D5,8,D 

4,8,F4,24,F3,24,F4,24 

740 DATA C4,24,C3,24,A3,24,D4,8,D4,B,D 

4,8,FI4 ( 12,D3,12,FI4,12,A4,4,A3,4,A5,4 

750 DATA D5,16,D4,16,G4,16,D4,8,A4.8,C 

5,8 

760 DATA B4,24,B3,24,B5,24,B4,B,G4,8,D 

4,8,B3,4,D4,4,G4,4,B4,4,B4,4,B4,4 

770 DATA C5,8,C5,8,C5,8,C4,B,G4,8,C4,B 

,64,B,G4,8,C4,B 

780 DATA C4,16,E4,16,G4,16,AI4,B,C4,8, 
E4,B 

790 DATA AI3,8,C4,8,C3,B,F4,24,F3,24,F 
5,24,F4,24,F4,24 

800 DATA C4,24,F4,24,A4,24,C4,24,R,24, 

C3, 24, B3,48,B2, 48,04,48 

810 DATA AI3,32,E4,32,AI4,32,C4,24,AI4 

,24,C4,24 

820 DATA F4,48,F4,4B,A3,24,AI3,24,B3,2 
4,F4,24 

830 DATA C4,24,F4,24,C2,24 
840 DATA 1,0,1,0,1,0 



Program Listing 4 



bytes which set attack, decay, sustain and 
release characteristics. The ADSR values 
must be entered before the note is 
actually turned on, which is a feature of 
the hardware. 

ADSR values are represented by 
nybbles — attack is the high order nybble 
of one byte and decay the low order 
nybble of the same byte, while sustain and 
release are the high and low order 
nybbles, respectively, of the byte entered 
into the next location in memory. Thus 
there are 16 possible values for each of the 
ADSR parameters, corresponding to the 
16 possible values of one nybble. Decay 
values, for example, are — in decimal — 
any number between zero and 15, while 
attack values {as the high order nybble) 
are any multiple of 16 between 0*16 and 
15*16. They can, of course, be added 
together to give a combined setting for 
attack and decay, since we can visualise 
this process simply as one in which bits are 
set low or high in both nybbles by 
determining a value for a single byte. If 
the value to the POKEs are exact and 
different powers of two, (0,1, 2,4,8, 16, 32, 
64, or 128), the effect of adding them is the 
same as performing a logical OR on them, 
since POKEing a location with one of the 
above powers of two sets precisely one 
data line high. This point should be borne 
in mind for future reference. 

The table below gives the real values 
corresponding to ADSR parameter 
settings. Note that A,D and R are given as 
rates (that is, the lower their value, the 
faster that phase of the envelope is over) 
while S is a proportion of peak volume. 
During the attack phase, the sound rises 
to the level set by POKEing 542% (the 
peak level). During the decay phase, the 
sound diminishes to a level set by the 
sustain value (the plateau level). This can 
be any of 16 values from the peak value 
itself (if sustain is set at 15) to zero. Setting 
sustain to eight, for example, would give a 
plateau level of roughly half the peak 
value — that is, for all practical purposes, 
plateau level = peak value * (sustain 
value/16). All amplitude values on the 64 
increase linearly, which is to say that 
amplitude (which is heard as a linear 
increase) you need to double the setting: 
thus an amplitude of eight is twice an 
amplitude of four (which is not the case 
with other computers). Programs 1 and 2 
use FOR-NEXT loops to create decaying 
notes, the first decreasing in volume or 
amplitude by linear steps, the second by 
an approximate halving at each step. 
Notice the difference in effect. Also note 
the actual locations used. 



Value 



Attack 



Decay/ Sustain 
Release 



0 (&0) 

2 mS6 mS 0 

1 (&1) 8 mS 

2 |&2) 16 mS 

3 (&3) 24 mS 



24 mS 
48 mS 
72 mS 



0.07 
0.14 
0.20 



4 f&4) 


38 mS 


114 mS 


0.27 


5 (&5) 


56 mS 


168 mS 


0.34 


6 (&61 


68 mS 


204 mS 


0.41 




80 mS 


240 mS 


0.48 




100 mS 


300 mS 


0.54 




250 mS 


750 mS 


0.60 




500 mS 


1 5 S 


0.68 


n (&b> 


800 mS 


2.4 S 


0.74 


12 (&C) 


1 S 


3S 


0.80 


13 (&D) 


3 S 


9S 


0.87 


14 |&£) 


5 S 


15 S 


0.94 


15 (&F) 


8 S 


24 S 


1.00 


The 


sustain 


figures 


are only 


approximate and the timingsare based on 



a 1 MHz clock, while the actual clock rale 
is 1.02 MHz in the US and 0.98 MHz in 
Britain. The attack figures give the amount 
of time taken for the note to rise from 
zero to whatever the peak amplitude is. 
Therefore, with a low peak amplitude, the 
attack will appear gentler than with a high 
peak amplitude. Similarly, decay and 
lease rates give the amount of time 
en for the note to decay or release to 
ro amplitude. If a non-zero sustain 
'ue is set, the decay will be interrupted 
fore ihe specified time is up. If a note 
decays from a low peak value, or is 
released from a low plateau value, then 
the time taken is as specified, so that the 
decay or release will be gentler than if the 
peak or plateau values were higher. 

Having set overall amplitude and 
envelope parameters, the next step is to 
set frequency. The Commodore has a 
range of almost eight octaves. The 
nominal frequencies can be calculated 
using the formula: F=N'C/16777216 Hz, 
where N is the decimal equivalent of the 
familiar two byte (16 bit) frequency 
number and C is the clock rale. 

Data is entered as a two byte number 
(that is, as two bytes in consecutive 
locations and is, again, linearly related to 
frequency rather than pitch. Pitch is the 
term we use to describe the sensation of 
music at frequency, in which the basic 
units are notes and tones. Two notes, for 
example C and D, will have a much 
greater difference in frequency at a high 
pitch than at a low pitch, which means 
that errors may creep in at the bottom end 
of the 64's octave scale, where small 
numerical differences can have a large 
effect on pitch. 

Since the resolution is so good — 
65536 values covering a range of 90-plug 
notes — accurate tuning is easy, if 
somewhat tedious. The most accurate, if 
least efficient, method for entering 
frequencies is to specify the frequency 
data for each note to be used in a program 
as one of two items in a DATA statement. 
(The relationship between the two byte 
representation of frequency and a single 
number value is given by FN=256'HB+LB, 
where FN is a frequency number and HB 
and LB are the equivalent high and low 
bytes in decimal). This method makes 
overall tuning difficult and it is often the 
best compromise to actually calculate 



ioo reh tsittmtttstttttttmmsMss 

110 REH I LISTING 5 I 

120 REM t WAVEFORM ADDITION I 
130 REM t t 
140 REM IPULSE WIDTH VARIATION SHOMNt 
150 REN I t 
160 REN IBIT5 SET ON W/FQRH RE6ISTERI 
170 REN ! t 
180 REN IINPUT AND COMBINE WAVEFORMS* 

190 rem mtmmmmmttttmmi 

200 POKE 54296,15 

210 POKE 54272,75;P0KE 54273, 34: POKE 5 
4274,255 

220 POKE 54277,0: POKE 54278,240 
230 PRINT'tCLEARl" 

240 PRINT ■ I HOME 1 C DOWN K DOWN H DO WN ] I DO 
HN ] I DOWN 3 [ DOWN ] t DOWN ] [ DOWN ] I DOWN J I DOWN 
UDO 

WN ] E DOWN ] [ DOWN } C DOWN ] E DOW N ][ DOWN H DOWN 
1 [ DOWN ] [ DOWN I [ DOWN ] [ DOWN ] ENTER 2 NAVEF 
DftflS 

(0 OR 1*T,2=S,3=P,4=N)" 
250 INPUT A,B 

260 IF A<0 OR A>4 OR B<0 OR B>4 THEN P 

RINT'rUPKUP][UPKD0NNKLEFT][LEFT] , :6 

0T02 

40 

270 POKE 54276,8:P0KE 54276,0 

280 A=-16I(A>0U2 A (A-1):B=-16MBM»I2* 

(B-U 

290 K=0 



values from a core of one octave's worth 
of data in your program, including a 
tuning variable in the calculation. 
Program 3 plays a tune using frequencies 
entered as DATA, while Program 4 uses 
core data-to calculate frequencies. Note 
how easy it is to tune Program 4 by just 
changing a single parameter in the 
calculation. 

Frequency data is entered as a low byte 
and a high byte in consecutive locations 
— the low byte allowing fine tuning, the 
high byte allowing coarse sweeping 
through octaves. The range of values is, of 
course, zero to 255 for each byte and out- 
of-range values will — in this and all other 
cases — either return an error and stop 
the program or interfere with other 
parameters (in the case, for example, 
when you POKE the volume register with 
a value greater than 15 you will interfere 
with the filtering parameters). 

After frequency comes waveform. 
There are four 'pure' waveforms: triangle, 





300 IF A=64 OR B=64 THEN K=l 
310 POKE 54276, (AORBI*! 
320 PRINT " E CLEAR ] ■ : TAB (240 > ; -WAVEFORM 
N0:'iA; , f;B; , *-;l;'=-;(A0RB)+l; 
330 IFPL=1THENF0RPW=0T015:P0KE54275,PW 
:PRINT , IH0MEr;TAB(255);'PW";INTf(PW+: 
) 110 

0/16);"Z":NEn 

340 B7=(A=128)0R(B=128> 

350 B6=(INT((INT((A0RB)/64))/2)O(INT( 

(A0RB>/64)/2>) 

360 B5= ( I NT ( ( INT ( ( AORB) /32) ) /2)< > C I NT ( 
(A0RBW32)/2H 

370 B4= (INT ( ( AORB) /32) <> ( ( (AORB! /32) > > 

380 PR I NT • E DOWN H DOWN ] E D0WN3 E DOWN ) C DOW 

N ][ DOWN ][ DO WN U DOWN 1 [ DOWN ] ■ 

390 PRINT "WAVEFORM REB: BIT 7.BIT 6.B 

IT 5.BIT 4" 

400 PRINT • 
■ 

410 PRINT" CRVSONJ ";AB 

S(B7);" ";ABS(B61;" ';ABSIB5);' 
";AB 
S(B41 

420 PRINT " 



430 IF K=0 THEN 460 

440 F0RW=0T015:P0KE54275,W:PRINT"[H0HE 

]"i"PW";INT((W*I)H00/16);T 

450 FOR P=l TO I00:NEUP,W 

460 PRINT"[H0HEJ";TAB(130);"HIT A KEY 

TO 60 A6AIN" 

470 6ETA$:IFA$=""THEN470 
480 60T0240 



Program Listing 5 



sawtooth, pulse and white noise. They can 
be 'mixed' but the effects are 
unpredictable, since the waveforms are 
not simply added but logically ANDed. 
Thus 16, 32 and 64 produce, respectively, 
triangle, sawtooth and pulse waves when- 
POKEd to the relevant location. Adding 16 
and 32 (or performing a logical OR on the 
values) produces a very thin pulsefas a 
result of logically ANDing the waves, but 
adding 16 and 65 actually produces a fairly 
rich composite waveform with a shape 
rather like the top half of a sine wave 
(Program 5). 

If pulse is chosen, as in the above 
example, it is necessary to set a pulse- 
width or duty cycle. There are 4096 
possible values set by POKEing a byte and 
a nybble into consecutive locations. The 
byte has a range of zero to 255 and the 
nybble a range of zero to 15. The reason 
for setting different pulse widths is that 
pulse width does affect timbre, because 
the harmonic content of a pulse wave at a 



given frequency depends on duty cycle. A 
value of zero POKEd into both registers or 
a value of 4095 (that is, 15 in the high 
nybble and 255 in the low byte) wil give a 
constant DC output. A value of 2048 {eight 
in the high nybble and zero in the low 
byte) will give a square wave. It is worth 
experimenting with combinations of 
waveforms, as above, using different 
width pulses plus triangle or sawtooth 
waves, since the logical ANDing involved 
works on the harmonics, cancelling out 
some and magnifying others. 

Setting the waveform should be the 
last POKE in any series of commands, 
because the waveform registers are also 
the control registers for any channel. The 
values for waveforms are as given above 
plus 128 for noise, but the sound will only 
be heard if bil zero of the control register 
is set to one. This is known as the gate bit, 
and it triggers the start of the attack phase 
of any sound. If it is set to zero, the sustain 
phase of the note terminates and it enters 
its release phase. Thus, to start a note 
playing, for instance a sawtooth wave, the 
location corresponding to the relevant 
waveform/control register must be 
POKEd with 33. To turn the note off, POKE 
the same location with zero on any even 
number. Thusa noteduration isgoverned 
by the attack time (given in the table 
above), plus the proportion of the decay 
time it takes to reach the sustain level 



(given by decay time * (1 — sustain level), 
where decay time and sustain level are the 
figures given in the table above for the 
relevant values POKEd into their 
assocaited locations), plus the duration of 
the sustain phase, plus the release time 
(given above). Sustain duration is set by 
means of a delay in the program. This can 
be almost any command, but typically, a 
FOR. . .NEXT loop is used. Other common 
delay techniques use the 64's internal 
clock to measure a fixes amount of time 
(the variable Tl holds clock data), a WAIT 
command to detect a particular event or a 
GET command to detect the presing of a 
key. Problems sometimes occur with the 
64's keyboard buffer, which should be 
cleared by a POKE 198,0 instruction if a 
key is pressed to initiate a note. 

The remaining sound locations will be 
dealt with in a future episode of the series, 
after which we'll move on to machine- 
code and a discussion of some theoretical 
aspects of music-making. Meanwhile, you 
should note that all locations and data 
used in the sample programs have been 
ascribed to variables to simplify the actual 
POKEs. This not only makes the program 
easier to understand, but it also saves 
time, since the 64 deals with variables 
quicker than it does with numeric 
constants. To finish. Program 6 shows 
what can be done with the 64's filter 
facility as a taster of things to come. 



SEARCHING FOR 6.LISTIN66.LISTIN 
READY. 



100 REnusnmmttmmttnmttMi 

110 REM Utlllt LISTING 6 Ittttttltt 
120 REMIimitFILTER EFFECTSttttttttt 

130 REMuuuuutttumtuuuism 

140 POKE 54296,31:P0KE 54277,64: POKE 
5427B,12B:P0KE 54293, 0: PRINT CHMU47I 
150 FOR R=0 TO 240 STEP 240:P0KE 54295 

160 PRINT CHR$(19);TAB<!0);"RESONANCE" 

;R 

170 READ A.B 

180 IF A=0 THEN 230 

190 POKE 54273.A: POKE 54272.B 

200 POKE 54276,33 

210 FOR F=0 TO 255 STEP 2: POKE 54294, F 
: NEXT 

220 60T0 170 

230 FOR P=l TO 800: NEXT: POKE 54276,0 
240 REST0RE:NEXT 

250 DATA 19,63,21,154,17.37,8,147,12,2 
16,0,0 



Program Listing 6 




Whatever your interest in the 
Commodore range of computers 
and peripherals, you simply cannot 
afford to miss a single issue. 

SUBSCRIPTION RATES ^^^HHH^H^^H 

£16.60 for 12 issues U.K. 
£21.50 for 12 Issues Overseas Surface mail 
£57.00 for 12 Issues Overseas Air mall 

Send Ihis form with your remittance to: 
INFONET LTD., Times House, 179 The Marloues, 
Hemel Hempstead, Herts. HPt IBB. 



* & & & \ v< 



HAVE YOU EVER WANTED TO GET INTO 
communications? Would you like to get 
in touch with other Commodore owners? 
Well, Your Commodore, together with 
Compunet, are pleased to announce the 
start of Club 128, and give you a chance of 
a special membership offer. 

Club 128 will appear on Compunet as a 
'free access' area open to all CNET 
subscribers. 

The club will be the focal point for a 
'serious' users of Commodore 
computers, hence the '128' affiliation. The 
128 doesn't mean that owners of C64s 
can't join, in fact the club is open to a 
Compunet members though only 
'serious' users are expected to make a 
great deal of use of it. 

Many sections of Compunet are due 
(o be 'pulled in' to this online area? 
int luding tlx 1 'Brief< .(-.<■ business •>«'» lioil 
that is already in existence. 

Your Commodore will have a 
magazine section within the club area 
where you will be able to find news and 
the latest programs that are published in 
the Magazine. 

The Offer 

I 

So what do you get and what does it cost? | 
Your Commodore is offering a special | 
membership to the Club for £69.99 
(int VAT and P&P in the UK) including: 
A Commodore 64/C128 Communications 
modem (worlh £79.99) 
A three month COLD subscription to 
Compunet (worth £15.00) 
A six month subscription to Your 
Commodore 

• PLUS ' 

£10.00 of discounts on selected business | 
and communications software, including j 
sofiware for accessing Viewdata and | 
Electronic Mail services such as Prestel | 
and Telecom Gold. 

In order lo take advantage of this 
special offer you simply need to send a 



l\l / A 




I i enclose a cheque made payable to Club 128 lor £69.99 for my Gold membership*!© 
| Compunet. Commodore modem and six month subscription to Your Commodore. 

I 

I 



I Name 
I 



I Address 
I 



I Postcode - 

I 

I Please allow at least 28 days tor delivery. Order should be sent to: Club 12BCompu- 



cheque or Postal Order made payable to ™««.ww.« "»*"<"7>; « — »-y - ~— ■ " " - J , 
Club 128 to the address on the below "« Telesemces Ltd. 7-11 Minerva Rd. London NW10 6HJ. 



oroi 



Save your fingers a lot of 



work with our new software 



service. 



IT'S THREE O'CLOCK IN THE MORNING. 
You sit at the computer keyboard having 
just finished a marathon typing session 
entering one of the superb programs 
from Your Commodore. Your fingers 
reach for the keyboard and press the 
letters R. U and N/. You sit back 
expectantly and. . .nothing happens. 

Well, I'm sure that we have all had 
problem before now. When it does 
happen it's a matter of spending hours 
searching through the program for any 
typing mistakes. No matter how long you 
look or how many people help you, you 
can usually guarantee that at least one 
little bug slips through unnoticed. 

Here, at Your Commodore, we pride 
ourselves on the quality of listing that we 
print. Unfortunately, this usually means 
that they are also very long, thus taking 
longer to type in and leaving more room 
for errors. All of the listings in Your 
Commodore are taken straight from a 
printout of working programs, it is 
therefore very unusual for errors lo 
appear in the magazine. 

Because of the length of our programs 
we do gel a large number of requests from 
readers who would like us to put specific 



SOFTWA& for 




programs on tape or disk for them. 
Obviously this is very time consuming and 
means that we can't spend as much lime 
working on the magazine as we would 
like. 

We are therefore proud to announce 
the start of the 'Your Commodore Soft- 
ware Service'. Most of the programs from 
each issue of the magazine will now be 
available on a single cassette for a price of 
just £4.00. We will not be making disks 
available since they would have to be a lot 
more expensive and more difficult to 
post. This shouldn't cause you any 



problems though as none of the programs 
will be protected and it will be a simple 
mailer to save the programs lo disk 
yourselves. 

All programs on the cassetie will be 
saved using a tape turbo routine. 
However, we cannot guarantee lhal all 
programs will work correctly with this 
turbo routine present. We therefore 
recommend lhal before you use any of 
ihe programs you make a copy of the 
programs on your own cassette or disk 
and use this version of the program not 
the original. 



PLEASE COMPLETE IN BLOCK CAPITALS 

All cheques/postal orders should be made payable to:- 
ARGUS SPECIALIST PUBLICATIONS LTD 



ORDER FORM 



I would like to order the following cassettes: (please tick box] 



APR '86 


YCAPR86 


£4.00 




MAY '86 


YCMAY86 


£4.00 




JUNE '86 


YCJUN86 


£4.00 




JULY '86 


YCJUL86 


£4.00 





I enclose a cheque/postal order for £ 

NAME 

ADDRESS 




POSTCODE 

All orders should be sent to :- 

YOUR COMMODORE SOFTWARE, READERS SERVICES, ARGUS SPECIALIST PUBLICATIONS, 
WOLSEY HOUSE, WOLSEY ROAD, HEMEL HEMPSTEAD, HERTFORDSHIRE HP2 4SS. 

Please allow at least 28 days for delivery. 




v ••• ••• v .-. V 

ORDEAL 



YOUR CITY IS UNDER 
attack from the alien 
Honker'. Your mission is to 
rescue all of your people 
from the city before 'Honker' 
reaches it. Should he reach it, 
then you can wave good bye 
to your three lives. 

There may seem to be 
nothing original about the 
game but there are a couple 
of things that make it worth 
looking at. Firstly it is fun to 
play presented. Secondly. 
John Fletcher has proved that 
not all good games need to be 
written totally in machine 
code. Lunar Ordeal is written 
mainly in Basic. 

A joystick in port 2 is 
needed to play the game. 




Variables 

Scoring Variables and strings: 
Sc,SC$,Sl$.CA,N$,C,SN$.Q$,\ 
Module Movement: 
W,H,VV,Vl,H1,VO,HO,U,D 
Miscellaneous: 
L — Lives 
LV — Level 

KY — Joystick Movement 
FU - Fuel 



XX=1 



PROGRAH: LUNAR 



ORDEAL 



0 DIM SNt(10),SCU0) 
iFOR T«l TO 10 
:SN$(T>"NQ ONE YET !!" 
lSCm«500-(20!T)iNEXT 

1 IF PEEK 149152)0120 THEN P 
DKE 5328i p 1:P0KE 53280,1 
(6QSUB 16000: 

2 SYS 49152:n-l:L»3iLV«l 

tU'-.5:D-0i60SUB 16100 
iGOSUB 30:XX-0 
: SCI- " 000000' 

3 PRINT CHR$(8):P0KE 56325,72 

:60SUB 100Q0:CA=0 
iSEI^OOOOOO'iPOKE V+21, 
255 

10 PRINT*£CLEAR3*iFU«20 

11 PRINT" [H0ME3 "TAB (13) " 
[GREEN ] FUEL iCRVSON, 
YELL0W3) ) )) ) >) ))))>)))>)> 
J) - 

12 PRINT " C HOME, WHI TE3LEVEL " ; 
LV 



13 PRINT , [H0r1E,D0MN,C63 
munmnnmnmni 

mtttmnmv 

20 POKE 53281, OiPOKE 53280,0 

iPOKE V+31,0 
25 Y=1904iYY=56176 
.'POKE 2040,240 

30 V»5324B:PQKE V+1,63 
:P0KE V,155iP0KE V+21,63 
iPOKE V+45,2:P0KE V+39,1 
:P0KE V+41,11 

31 POKE V+28,255;P0KE V+37,2 
:P0KE V+3B,7 

40 POKE V+2, OiPOKE V+3,80 
(POKE V+4 ( 0iPQKE V+5 f 120 
iPOKE V+6,0:P0KE V+7,160 
.'POKE V+8,0 

41 POKE V+9,190iP0KE V+10 t 10 
:P0KE V+11,213 

42 POKE V+40,9 

50 POKE V+27,255:P0KE V+23,6 
i POKE V+29,6:P0KE V+44,6 
:P«56156 

55 IF XX-1 THEN RETURN 

56 POKE 53272, (PEEK <53272l AN 
D 240>+12iPQKE V+17, 
PEEK(V+17)0R 64 

60 FOR I»0 TO 39i POKE 56216+ 
I,8:P0KE 1944+I ( 43iNEXT 
IPRINT-CH0ME3" 

61 FOR I«0 TO 39: POKE 56256+ 
I,8tP0KE 1984+1 , 44: NEXT 

69 PRINT TABtl7) "CD0MN19, 
VELL0W]>CSPC3]>- 

70 PRINT TAB (17) "C YELL0H1 ) 
[C8]'[BLUE3tt|[C81( 
[YELL0M]) - 

71 PRINT TAB(17) "[YELLOW]) 

, , liCYELLOH]) ■ 

72 PRINT TAB(17> "CRVSON, 
YELLOW [CB,RVS0FF](,„' 
C RVS0N, YELL0N 3 ) I R VS0FF ] " 

75 POKE Y+16,45iP0KE YY+16,1 
:PQKE Y+24,45:P0KE YY+24,1 
•POKE V+30, OiPOKE V+31 0 



76 PRINT"[RVS0N,liHITE]SC0RE 

: "SC$j : PRINT" CH0ME3 " 
90 FU=20:M-130:SYS 49152 
! VV=65 : H-l 35t V0»0 : HO-0 
iPOKE 54296,15 
iPOKE 54278,240 
100 V1=.1;H1=0 

104 : 

105 REM iltlltt* MAIN LOOP 
ttfttltfttftt 

106 i 

110 KY*PEEK (56320) 

111 POKE 1043+FU.32 
:P0KE P,INT(RND(1)I16) 

115 IF RND(1)).7 THEN POKE Y 

♦16,45;P0K£ Y+24,45 
120 IF KY=126 AND FU>0 THEN 

V1=U:FU»FU-.5:PQKE 54273,8 

(POKE 54276,129 

:P0KE V+21, 127 
125 IF FU*0 THEN PRINT" [HOME ] 

"TAB(22) H [RVS0N,HHITE30UT 
OF FUEL" 
130 IF KY-123 THEN HI-. 2 
140 IF KY*119 THEN HK2 
150 IF KY-127 THEN V1«.1;H1«0 

:P0KE 54276,0 
160 IF H1=H9 THEN 60T0 1B0 
170 H9=H1:K=SGN(ABS(H9)U129 

rPOKE 54273,39 

iPOKE 54276, K 
180 V0=V0+V1:H0=HQ+H1 
200 IF VV<50 THEN V0=ABS(VQ) 
210 IF H<20 THEN H0=ABS(H0) 
220 IF H>240 THEN HQ=-ABS(H0) 
250 VV*VV+V0:H-H+H0 
260 POKE V,H:P0KE V+l.VV 
:P0KE V+12,HtP0KE V+13, 
VV+14 

320 Z=Z+.5:IF Z«l THEN POKE 
2045,243 

321 IF Z«2 THEN POKE 2045,242 
:Z>0 

330 IF INT(VV)»200 AND INT (H 
)>172 AND INT (H)< 177 THEN 



SOTO 1000 
340 IF PEEKIV+31)=1 THEN GOT 
0 2002 

350 IF PEEK (V+30) >2 AND PEEK 

(V+30KB THEN 60T0 2000 
360 IF PEEK(V+10)=140 THEN 6 

0SUB 3000 
500 IF RND(1)).7 THEN POKE Y 

+24,46:P0KE Y+16,46 
510 POKE V+21, 63 
520 GOTO 100 

997 i 

998 REM limit LANDING ROUT 

INE ttsmti 

999 : 

1000 FOR T*690 TO 715 
iPOKE T,0:NEXT 

: POKE 54276, OiPOKE 54273, 
30: 

1001 PRINT" [HOME, D0MN2I" 
|A*-"[C4,C5,CB,«HITE]" 
:F0R A«l TO BiFOR B=l TO 4 
:PRINT TAB(17)MIDI(AI,B, 

i); 

1002 PRINT "CUP3LANDED ! " 

1003 FOR T"l TO 60:NEXT T,B,A 

1004 POKE V+31,0: POKE V+23, 
12B:P0KE V+29,128 
iPOKE 54278,3 

1005 FOR I»l TO FUI3:CA=CA+I 
:S$«STR$(CA):S1I»RIGHT$(S 
I,LEN(SJ)-1):P0KE 54276,32 

1006 SCMLEFTKSEJ, 
6-<LEN(Sll)))+Slt 
: POKE 1043+FU,32:FU»FU-.3 

1007 POKE 646,I:PRINT'[H0HE, 
D0HN24I > TAB16)SCI; 

1008 POKE 54276, 17:NEXT I 
:P0KE 54296, OiPOKE 1043.32 
:PDKE 1044,16 

1010 POKE Y+16.32 

: POKE Y+17,46:F0R T«l TO 

150:NEXT 
1015 POKE Y+17,41 



77 



Program Breakdown 

0 — Variables for high score (able 

1 — Check if machine code is in memory 
2-3 — Go to title page routine 

10-90 — Print screen, set up sprites and variables 
110-520 — Main loop for game 
1000-1008 — Routine for landing and scoring 
1010-1041 — Animate people going into lifts 
1059-1090 — Bring mother ship down to collect module 
2000-2050 — Routine for hitting something, deduct life 
3000-3030 — Honker has reached people, end of game 
5000-5030 — Game over, check for high score 
5040-6050 — Input name for high score, calculate place, 
print names 
1000-1068 — Title page 

16000-16111 — Read data into appropriate memory 

locations, set sprite speeds and directions. 

17000-17040 — Data for machine code 

20000-20048 — Data for sprites 

20060-20065 — Data for user defined graphics. 



: POKE Y-23,46:F0R TM TO 
150: NEXT 

1020 POKE Y-23,41 

:P0KE Y-63,46:FQR T-l TO 
150:NEXT 

1021 POKE Y-63,41 

:F0R T-l TO 150:NEXT 
1030 POKE Y+24,32 

: POKE Y*23,46:F0R T»l TO 

150: NEXT 
1035 POKE Y+23,41 

:PQKE Y-17,46:F0R T«l TO 

150;NEXT 

1040 POKE Y-17,41 

: POKE Y-57,46:F0R T=l TO 
150: NEXT 

1041 POKE Y-57,41 

:F0R T-l TO 150:NEXT 

1059 POKE V+21,129 
:P0KE V+45,1 

1060 POKE V+14,162 
:P0KE V+15,0 

1070 FOR 1=0 TO 220 

:P0KE V+37, I:P0KE V*15,I 

:NEXT:P0KE V, 174 
1080 FOR 1=220 TO 17 STEP-1 

: POKE V*37,I:P0KE V+15,I 

:P0KE V+1,I-16:NEXT 
1090 LV«LV+1:P0KE 56325, 

50-(LVU.5>:6DSUB 16100 

:60T0 10 

1997 : 

1998 REHIIlim CRASHED ROUT 

ine turns* 

1999 : 

2000 IF PEEK(V*30>«65 THEN P 
OKE V*30,0:GOTO 300 

2001 IF PEEK(V+30)»0 THEN 60 



TO 500 

2002 FOR T=690 TO 715 
:P0KE T,0:NEXT 

:P0KE 54276,0: POKE V+38, 2 
:P0KE V+39,7 

2003 PRINT"tHQME,D0WN2]" 
iA$='(C4,C5,C8, WHITE]" 
:F0R A«l TO 8:F0R B=l TO 4 
:PRINT TAB(17)MDI(At,8, 

2005 PRINT"[H0NE]"TAB(17)' 
[DQWN23CRASHED!" 

2006 FOR T»l TO 70: NEXT: NEXT 
:NEX.T:L-L-1 

2010 POKE 54276,128 

:PQKE 54277,59 

:P0KE 54278,14 

:P0KE 54273, 3:P0KE 54272,2 
2015 POKE 54276,129 

:P0KE 2040,246 

IFOR T=l TO 200:NEXT T 

2039 PRINT TAB(17)"[DQWN,C7] 
LIVES:"|L 

2040 IF L=<0 THEN 5000 
2050 FOR T=l TO 1000:NEXT 

:G0SUB 16100:POKE V+30,0 
:P0KE V*31,0:GQT0 10 
2997 : 

299B REHHIli HONKER HAS HAD 
E IT mist 

2999 : 

3000 FOR T«690 TO 715 
iPQKE T,0:NEXT 

:P0KE 54276, 0:F0R D=l TO 3 

3001 PRINT"[HOME ( D0WN3]" 
:A$='[BLACK,C4,C5,C8, 
WHITE] " : FOR A-l TO 4 
:F0R B«l TO 5:PRINT HIDK 




A$,B,1>| 

3002 PRINT"[UP]DH NO! HONKER 
HAS MADE IT TO YOUR PEOP 

LE"; 

3003 FOR T»l TO 60 
:NEXT T,B,A,DiL«L-l 
:IF L«<0 THEN 5000 

3010 PRINT TAB(15)'tYELLQN3 

ONE LIFE LOST. LIVES i'jL 
3020 FOR T«l TO 2000: NEXT 
3030 GOTO 10 

4997 t 

4998 REMtttMH GAHE OVER 

tmtut 

4999 i 

5000 FOR T-690 TO 715 
:P0KE T,0:NEXT 
(FOR TM TO 90 

:PDKE 54276, 0:P0KE 54273, 
30 

5001 POKE 646,INT1RNDU)I16> 
SPRINT" CH0ME1 "TAB ( 16) " 
[DOWN23GAME QVER!":NEXT T 

5004 POKE V+31,0:P0KE V+21,0 
5010 PRINT" [CLEAR, DOWN, WHITE] 

YOUR FINAL SCORE WAS';CA 
5020 PRINT" [D0WN1AND MANAGED 
TO 6ET TO LEVEL "jLV 

:F0R T»l TO 5000:NEXT 

:P0KE 198,0 
5030 IF CA<SC(10)QR CA=0 THE 

N 5080 

5040 OPEN 1,0 

5041 POKE 53281,3 
:P0KE 53280, 3:PR1NT" 
[CLEAR , D0WN7, RIGHT7, BLACK] 



TYPE IN YOUR NAME PLEASE' 

5045 PRINT"[D0WN,RIGHT9,SPC3 
13 LETTERS NAXIHUH 1 

5046 PRINT TAB(12)'[BLUE, 

D0WN3] 

CLEFT13]"; 

5047 INPUTI1,N$:IF LEN(NI)>1 
4 THEN CLOSE 1:60T0 5040 

5050 SN$(10)=N»:SC(10)=CAi 

5055 C*0:FQR T-l TO 9 

5060 IF SC(T+1)>SC(T)THEN W= 

SC(T+1):SC(T+1)=SC(T) 

:SC1T)=W:G0T0 5076 
5070 NEXT: IF C»l THEN 5055 

5075 60TD 5080 

5076 Q*«SN*(T+l)tSNI(T+l)=SN 
• (ThSNI(T)»MiC-l 

:60T0 5070 
5080 POKE 53280,0 

:P0KE 53281,0: POKE 53272, 
28 

5091 PRINT" [CLEAR, DOWN, 
RI6HT2,WHITE]-[YELL0N,SPC] 
FREEKY PLAYERS ALL TIME 

BESUSPC, WHITE]-' 

5092 PRINT" C&REEN] 
lUIUIltUUUSUUtull 
tltltlltltt" 

5095 FOR T«l TO lOiPOKE 646, T 
:PRINT"[D0WN,RIGHT5]"T( 
SN« (T) TAB t25) SC (T) : NEXT T 

6000 PRINT" CH0HE1 "TAB (4) ■ 
[D0WN24,WHITE]PRESS ANY 

KEY TO PLAY AGAIN" 

6001 CLOSE IiH'OiDE-O 
6010 TT«PEEK(197) 



78 







:IF TT-64 THEN DE=DE+1 
6015 IF DE=400 THEN DE=0 

:G0T0 2 
6020 IF TT<>64 THEN GOTO 2 
6050 GOTO 6010 

9997 i 

9998 RE* ttttflt TITLE PAGE 
lltltll 

9999 : 

10000 POKE 53291,1 
■•POKE 53280, 1 : PRINT" 
[CLEAR, C3]"iP0KE 2040,240 
:PQKE V+39,14 

001 POKE 53272,21 
i POKE V+17,155sP0KE V+37,5 
:POKE V+38,13sCA»0 

10010 PRINT TAB(2)"CUP,SU, 
SC2,SI,SPC15,SU,SC4,SI] 

10011 PRINT TA8I2PESB, RVSON, 
SPC2,RVS0FF,SB,SPC15,SB, 
RVS0N,SPC4,RVS0FF,SB] 

10012 PRINT TAB(2)"tSB,RVS0N, 
SPC2,RVSDFF,SB,SPC15,SB, 
RVSON , SPC , RVSOFF , SU, SI , 
RVSON.SPC, RVSOFF, SB] 

10013 PRINT TAB(2>"[S8, RVSON, 
SPC2,RVS0FF,SB,SPC15,SB, 
RVSQN,SPC,RVS0FF,SB2, 
RVSON, SPC, RVSOFF, SB] 

10014 PRINT TAB(2) "[SB, RVSON, 
SPC2,RVS0FF,SJ,SC3,SI, 
SPC11, SB, RVSON, SPC, RVSOFF, 
SB2,RVSQN,SPC,RVS0FF,SB] 

10015 PRINT TABI2)"[SB,RVSQN, 
SPC6,RVS0FF,SB,SPC11,SB, 
RVSON , SPC , RVSOFF , SJ , SK, 
RVSON, SPC.RVSOFF, SB] 

10016 PRINT TAB(2>"[SB,RVSQN, 
SPC6,RVS0FF,SB,SPC]U N 

A RCSPC3, SB, RVSON, SPC4, 
RVSOFF,SB,SPC]R DEAL 

10017 PRINT TAB(2)"tSJ,SC6, 
SK,SPC11,SJ,SC4,SK] 

10020 PRINT TAB(3)"[D0NN,C2] 
BY JOHN FLETCHERtSPC2](C) 

19B5 AGE 15[SPC,BLUE3' 

10021 PRINT ■ CDDHN] 

TRY TO LAND ON THE PAD 
AT THE BOTTOM OF" 

10022 PRINT'THE SCREEN BEFOR 
E 'CRED1H0NKERCBLUE3 

• ATTACKS YOUR" 

10023 PRINT-PEOPLE . SHOULD 

HE ACHEIVE THIS THEN YOU" 

10024 PRINT TAB42) "HILL LOSE 
ALL THREE OF YOUR LIVES." 

10025 PRI NT " CDOHN , SPC ] CONTROL 
:- JOYSTCK IN PORT TMD" 

10027 PRINT" UPtSPC3]» MAIN 
[SPC23THRUST (USES FUEL)" 



1002B PRINT" LEFT * LEFT 
CSPC2]THRUST[SPC5]" 

10029 PRINT" RIGHT" RIGHT 
THRUSTCSPC51 - 

10055 PRINT TAB(9) "[BLACK, 
DOWN]PRESS ANY KEY TO PLA 
Y 1 

10058 PRINT'tSPC, DOM, BLUE] 
r HC SPC v RED] * HONKER ' " 

10060 TT«PEEK(197) 

:IF TT-64 THEN DE»DE+1 

10065 IF DE«700 THEN DE=0 
I POKE V+21,0:GOTO 5080 

10066 IF TT<>64 THEN RETURN 

10067 A1=A1+1:IF Al=15 THEN 
POKE 2045,243 

10068 iIF Al-30 THEN POKE 20 
45,242:A1«0 

10100 GOTO 10060 

15000 : 

15001 REN Mitt INTIALISATIO 
N£SPC2]l«m*i 

15002 : 

16000 PR INT ■ [CLEAR 3 "TAB ( 1 2) a 

[D0MN11,BLACK]PLEASE WAIT 
i ■ 

16002 FOR 1=0 TO 90:READ A 

:POKE 49152+1, AiNEXT 

:SYS 49152 
16010 FOR 1=2041 TO 2045 

:PQKE I, 241: NEXT 

iPOKE 2040,240 

:POKE 2045,242 

:POKE 2046,244 
16020 POKE 2047,245 

16050 FQR K=0 TO 6 

:FOR J=0 TO 63: READ A 
:P0KE(240+K)I64+J,A 
: NEXT J,K 

16051 POKE 56334, 
PEEK(56334)AND 254 
:PQKE 1, PEEK (HAND 251 

16052 FOR 1=0 TO 511 
iPOKE 12288+1, - 
PEEK (53248+1): NEXT 

16060 FOR 1=0 TO 95: READ A 
:POKE 12568+ I, AiNEXT 

16061 POKE 1 , PEEK ( U OR 4 
iPOKE 56334, PEEK (56334) OR 

1 

16100 POKE 690,2iP0KE 691,0 
:POKE 692,2:P0KE 693,0 
iPOKE 694, 3i POKE 695,0 
:POKE 696,1 

16101 POKE 697,0:P0KE 698,20 
: POKE 699,0 

16110 POKE 706,255:P0KE 707,0 
iPOKE 70B,1:P0KE 709,0 
iPOKE 710,1:P0KE 711,0 

16111 POKE 712,1:P0KE 713,0 



iPOKE 714,1:P0KE 715,0 
16299 RETURN 
16997 : 

1699B REN Iftttt MCHINE CODE 
DATA tlltt 

16999 : 

17000 DATA 120,169,192,141, 
21, 3,169, 13,141, 20,3,BB, 
96,162,15,169,128 

17010 DATA 141,61,3,141,60,3, 

222,208,2,208,44,189,176, 

2,157,208,2 
17020 DATA 189,192,2,240,33, 

16,12,189,0,208,8,222,0, 

208,40,240,7 
17030 DATA 208,19,254,0,208, 

208,14, 173,60, 3, 20B, 9, 173, 

61,3,77,16,208 
17040 DATA 141,16,208,173,60, 

3,208,3,78,61,3,73,128, 

141,60,3,202,16,191,76,49, 

234 

19997 : 

19998 REN HUH! SPRITE DAT 
A limit 

19999 : 

20000 DATA 0,0,0,0,40,0,0, 
150,0,2,85,128,9,85,96,9, 
125,96,37 

20001 DATA 255,88,39,255,216, 
149,125,86,149,85,86,37, 
85,88,10,170 

20002 DATA 160,0,130,0,2,0, 
128,8,0,32,32,0,8,32,0,8, 
168,0,42 

20003 DATA 0,0,0,0,0,0,0,0,0 

20010 DATA 0,0,0,0,0,0,0,0,0, 
0,0,40,0,10,95,192,37,93, 
192,38,235 

20011 DATA 112,37,159,176, 
157,103,236,149,86,236, 
159,94,220,158 

20012 DATA 93,152,158,85,158, 
37,182,222,37,93,185,39, 
85,117,39,231,93 

20013 DATA 9,219,84,9,85,88, 
2,165,96, 0,10,12B,0 

20020 DATA 0,112,0,1,248,0,3, 
240,0,7,228,0,15,204,0,15, 
224 

20021 DATA 0,31,254,0,28,255, 
128,28,255,224,28,251,240, 
12,248,255,12 

20022 DATA 24B,63,7,240,62,7, 
224,60,3,192,56,1,128,48, 
1,128,0 

20023 DATA 1,128,0,1,128,96, 
1,255,224,1,255,192,0 

20030 DATA 0,112,48,1,248,56, 
3,240,60,7,228,62,15,204, 



127,15,225 

20031 DATA 255,31,255,240,28, 
255,192,60,255,0,110,64,0, 
207.32.0,15 

20032 DATA 152,0,7,240,0,7, 
224,0,15,192,48,24,96,48, 
48,48,112 

20033 DATA 96,24,224,96,13, 
192,62,7,128,31,131,0,0 

20040 DATA 1,57,0,1,57,0,2, 
56,128,2,124,128,2,56,128, 
1,57,0,1,17,0,0,40,0,0,16, 
0 

20041 DATA 0,0,0,0,0,0,0,0,0,: 
0,0,0,0,0,0,0,0,0,0,0,0,0, 
0,0,0,0,0,0,0,0,0,0,0,0,0 

20042 DATA 0,0 

20043 DATA 13,195,112,13,195, 
112,13,195,112,13,195,112, 
13,195,112,13,125,112,53 

20044 DATA 85,92,53,105,92, 
53,170,92,53,170,92,213, 
170,87,245,85,95,229,85,91 

20045 DATA 239,125,251,251, 
125,239,59,255,236,15,255, 
240,12,60,48,12,0,48,55 

20046 DATA 0,220,213,195,87, 
0,0,0,0,0,8,0,2,8,8,0,8, 
32,0,42,128,0 

20047 DATA 174,160,2,239,128, 
42,255,160,11,255,224,2, 
255,224,2,255,128,2,190 

20048 DATA 0,8,186,128,0,184, 
32,0,40,0,0,32,0,32,32,0, 
0,0,128,2,0,2,0,0,0,0,0,0, 
0 

20050 : 

20051 REM tttfttttt UDG DATA 

smsftttt 

20052 : 

20060 DATA 3,3,15,31,63,126, 
124,124,192,192,224.240, 
248,126,62,62 

20061 DATA 255,63,15,15,7,7, 
3,3,255,251,240,240,224, 
224,192,192 

20062 DATA 128,192,192,227, 
244,248,248,248,1,3,3,199, 
47,31,31,31 

20063 DATA 204,204,204,204, 
204,204,204,204,255,255, 
85,85,34,0,0,0 

20064 DATA 16,59,255,255,255, 
255,255,255,255,255,255, 
255,255,255,255,255 

20065 DATA 153,90,36,24,24, 
36,66,129,24,24,36,90,153, 
36,36,36 



clean on its errors. 



number of lines were missing from ihe 
instructions. The missing lines are 
printed below. 



HERE AT YOUR COMMODORE WE 
pride ourselves in the quality of the 
listings that we print. Obviously we try to 
make sure that all programs are correct 
but occasionally errors do slip through, 
usually because they occur at stages of 
production that are out of our control. 

This is the page where we come clean 
and give you details of errors that have 
appeared in recent issues. 

MACH 

The author of this program made some 
late changes to the actual listings. This 
meant that the end addresses for each 
part should have been altered. Unfor- 
tunately we did not spot this. Below you 
will find the start and end address for 
each part. Don't forget you can save the 
program from within the monitor with 
the S command. 

Monitor - $8200 to $8E75 
Macro - $9000 to $9C30 
Assembler - $9000 to $9DB8 

Some people are also experiencing 
problems with the .SER command in the 
Macro program. It appears that any 
labels generated do not increase in 
numeric order, but rather graphic 
characters are placed in the label. This 
only happens on some machines and 
does not effect the operation of the 
program as each label is still unique. 
However the author of the program is 
looking into this to see if he can find the 
problem. 

March 1986 

A couple of weird characters appeared 
in the listing of Kung Fu Masters. The 
characters should be the Commodore 
key and the@sign when you see ri, and a 
space when you see the a symbol. Also a 



PROSRAM: K.FU. INSTRUCTIONS 



U85I print-is tihe is tmi 

Is REVOLUTION. Is G3R0UP 
S DF [s E3VIL" 
1186* PRINT'FIBHTERS JOINED 

TOGETHER TO OVERCOME" 
1137? PRINT'ANTTHIHG WHICH S 
TANDS IN THEIR PATHS.' 
11B98 PRINT* ts EjVEN t HE Is 
EMPIRE'S TROOPS ARE FAILING 

TO' 

U9N prwretupn after *he 

IR QUEST TO RID THESES" 
1191ft PRIHT'EVIL FIGHTERS FR 
ON THE COUNTRY . Is WW 
11929 PRINT-HAVE TRIED BUT F 
EH EVER RETURN TO TElL* 
1193? PRINT'OF THE EVIL SRQU 
PS HIDING PLACES." 
!!948 PPINT-[c H3GNEVER, FDR 
THE DEATH OF A FI5HTEM0U' 



A couple of wierd symbols also 
appeared in the Grid search listing. 
Whenever 1 appears, replace it with a 
space and when\ appears replace it 
with a £ sigh. 



April 

Because we didn't have a working 
Plus/4 we had to ask the author of the C- 
16/Plus/4 character generator to 
provide the listing. Unfortunately his 
listing was incorrect. Below you will find 
the lines that need to be changed. 




PR06RAH: Cla CHAR .SEN 



zi 



1171 BEF FMCU)«FI6UMI2I 
189? :^P: T E[i=65288:SC=!:SL= 
4:BC=9:BL=4:CC=1:CL=7 

U5I 2 IS= * " : FOR I « ! T06 : SE ADA : 
ZZt«Z7$*CMMW EKE?!;CNRtift) 
:298 D0lCETA»:L00P WILE W» 
13N LOOP UNTIL MSTRiZZ^AI 

192? PPINTSPCi2?) a 0 KULTI OF 

2948 F0RR=i707:A=PEEKU48*8* 

2158 D0:6ETA$:L00P UNTIL A$= 

2218 D0:GETAi:L00P UNTIL A$= 
■!' OR A*="N" 

2288 DOaSET A$:L0CP UN'ILfi$= 
*f "DRA$='N B 

238? DC:5E' AlrLOOP UHTILA** 

2538 DC :GET AS:L00P UNTIL Al 

='T' OP M="D* 

2598 FQRI=1T0LEN(FN$):P0KE5! 

2848 PRWT'CMHITEl'RIGHTK 1 
'♦STR$!I),2);'[BLAm= 



Some people are also experiencing 
problems with TOPMON in the same 
issue. This is because you have to move 
Basic before you RUN the program. The 
POKES given to perform this move are 
correct but if for some reason the 
location before the new start of Basic is 
not set to a zero you will get a syntax 



Errors 




in some issues. Here are the lines that 
you may be having problems with. 



error. Modify the given POKE command 

to: 

POKE43,0:poke44.32:POKEB191,0:NEW 

and you should have no problems. 

The author of the article '2 for the 
C128' made a mistake with the position- 
ing of the arrow in PROGRAM 2 line 220. 
The arrow should point to the 66 not the 
42. 

May 198b 

Unfortunately the gremlins crept into 
the layout of the Programming the C-16 
article. The last section of the program 
SYNTHDATA was placed at the end of 
the COMPILER by mistake. The 
COMPILER should only go up to line 
45150 and lines 20080 onwards should 
follow line 20070 of the SYNTHDATA 
listing. Also line 55020 of the DEMO 
TUNES has a *,2' missing from the end. 
Lines 50500 to 50530 are badly printed 



PROGRAM: C16 DEMO TUNES 



58588 DATALA , JOESTHEHE ,TH ,8 , 

VD^DE^GD^A.JOE^i.GO, 

IA,J0E,PA,188,GQ,IA,HQVIS 

58518 DATALA, J0E.C2, 345, 38,6 

85,18,784,28,739,02,169,28,5 

96 

58528 DATAC2,383,38,784,18,7 
39,28,778,02,262,28,643 
58538 DATAC2,383,38,784 1 18,7 

39,28,778,02,262,28,643 
58548 DATAC2,453,38,739,18,7 
78,48,798 



In the same issue a 1 was missed from 
the end of line 2780 of (he COMMS GEN 
5 program in the Telcom 64 article. This 
line should end with 371 NOT 37. 

POLAR PETE suffers from a couple of 
problems. Firstly a couple of digits have 
been swapped in the POKE statement 
thai you must enter before you RUN the 
programs. This should start with: 

POKE16384 NOT POKE 16483. 



Also a line was badly printed in Pete 
Load 3. The line should be: 

2040 DATA141. 3.212.169,32.141, 2.212,96, 
169,13.141.5.212.169.10.1727. 

WORDPROK suffered from duplica- 
tion. On page 71 the listing isduplicated 
from page 70. You can ignore the listing 
on page 71 and the very last line on page 
70 that starts <> -128. 

As far as we are aware these are all of 
the problems in recent issues. Obviously 
we are trying to get listings more 
accurate each month. If in the meantime 
you do have problems then please do 
write in and we will deal with your query 
as soon as possible. 





C pmpufuart 




TME ATARI AND^ SMASH HIT 





Stuart 



a package that makes games 



design easier. 



AFTER PLAYING YOUR THREE THOU- 
sandth game of 'Blast the Alien' you'll 
probably think that you can do more 
with your C64 than just play games. Who 
knows you may even get the urge to 
write your own games to occupy 
yourself? However, there is one very big 
problem - programming. If you've ever 
tried to move an object around your 
C64's screen you will have found that it's 
not quite as easy as the professional pro- 
grammers make it look. What you need 
is some sort of tool that takes the hard 
work out of games design. Well Activi- 
sion has come to your rescue with Game 
Maker. 

Game Maker is actually a number of 
tools, each one is aimed at helping you 
to design and write your games 
program. The Scene Maker lets you 
draw the background for your game. 
Sprite Maker allows you to design the 
characters that will appear on your 
screen. Music Maker and Sound Maker 
allow you to add music and sound 
effects to your program. The Editor 
allows you to 'write' a program that links 
all the above parts together to form a 
game. 

Write is probably not quite the 
correct word for the way in which you 
write programs. You very rarely need to 
actually type anything on the keyboard 
as all of the programming commands 
are selected from the screen with a 
joystick. If the commands need any 
parameters then these are also selected 
with a joystick. For example if sprite 
number one was a dog then you would 
select the 'Sprite 1 is' command. The 
computer would then get the catalog of 
available sprites from your disk drive, 
selecting the dog sprite is simply a 
matter of moving the joystick until the 
word 'DOG' appears in the window. You 
have now told the computer that 'Sprite 
1 is DOG'. Simple isn't it? 



Some people may say that if you are 
going to have to program the game 
anyway why bother using a program 
such as this? Why not just write your 
program in Basic or machine code 
instead? If we take a look at the example 



following commands do this: 

SPRITE 1 ANIMATION SPEED = 030 
SPRITE 1 DIR * 064 RIGHT 
SPRITE 1 MOVEMENT SPEED = 045 



insiedUi it wtr irfftc u iuu* nunc c*OMpps 

program that you build up over the first And t^'souj^rogram finished. Simple 
few pages of the manual the reason (or isi 
using a program like this should become 



apparent. 

Let's assume that we have used the 
different 'Maker' programs to create a 
dog sprite, a jungle background and a 
piece of music, in this case the William 
Tell overture (Wiltel). Now lets have a 
look at a simple program. Firstly we want 
to display (he background on the 
screen. The instruction: 



SCENE 1 IS (UNCLE 2 
[his. JUI 



would do this. JUNGLE2 is the name 
used to save the scene on to disk. Now 
let's add the DOG sprite at position 
40,154 these are the X ami Y co-ordinates 
on the screen. Firstly we need to select 
the sprit^pd then position' it. 
done will 



This is 



1 IS DOG 



SPRITE 

SPRITE 1 X POSITION = 040 
SPRITE 1 Y POSITION = 154 

Simple isn't it? Now let's animate the 
dog and move it across the screen. The 



isn't it? II we now RUN the program a 
dog will run across our jungle scene 
from left to right^^A 

The reason for using a program like 
this should now be apparent, ij is so 
simple to use. 

Obviously there are bound to be 
limitations with a program like this. The 
author of Game Maker can hardly be 
expected to cater for every little effect 
that every programmer will need. Some 
f the major limitations are that firstly 
ou can only have two screens to your 
game and secondly, you can only have 
eight sprites on the screen at once. If you 
were writing the program in Basic or 
Machine code you could have as many 
screens as the computer's memory will 
allow. You can also get more than eight 
sprites on the screen at once through 
careful programming. 

Even so it is possible to write a wide 
variety of 'games' with this program. 
Games provided on the disk with the 
program range from 'Chopper, a 
shoot'em up game to an animated 
Christmas card, complete with clock- 
work soldier and jack in the Box. 




^OOO 



i i 





: 




The Editors 

Obviously the quality of the games that 
you design with this program depends 
very much on how good the various 
Editors are. Well you will be pleased to 
know that they are all excellent. In fact 
some of them are better than some stand 
alone programs that are available. 
Because the programs are so powerful it 
is probably worth dealing with each one 
in turn. 

Scene Maker 

This is the program that allows you to 
design your back drops. If you have ever 



wave 

•ft 

dec 
sus 
rel 

h 

fr<i 

1 1 

SP4 

* 

h 

PIS 



© 

o 
o 



sawtooth tie 
ooo rer-eets 

015 O nuHber 
000 

015 

O delay 

OOM 000 

016 frane 00J^ 




135 US«d 0O1 



hear frame 
hear sound 
constant 



000 equalizer 

\tf ac or. 



quiet 



000 o## BD on 

000 00 00 00 



dur 



02M 



015 25M 

If . % 

o p £ J 

, w i i * I i 

— « 2 5 <* * a 
■ els 



used a graphics program then you will 
recognise most of the available 
commands. Draw allows you to sketch 
on the screen in one of the available 
colours. You can have four different 
colours on the screen at any one time. 
All drawing is carried out via the joystick. 
The functions of Line, Box and Circle are 
quite obvious and Fill allows you to 
colour in areas of the screen. It is poss- 
ible to copy areas of the screen from one 
position to another as well as Zoom in on 
a specific area so that it is easier to add 
fine detail. 

One interesting thing about this 
-program is the way that the menu of 
commands covers the top half of the 




screen. The bottom half of the screen is 
used for drawing. My first thought on 
trying to draw my own background was 
how on earth do you draw on the lop" 
half of the screen? Then I realised that 
the Move command scrolls the bottom 
window so that you can see any area of 
the background scene. If you wish to see 
the whole picture, the View command 
turns off the menu. 

Scene Maker is extremely well 
designed and very simple to use. 

Sprite Maker 0m 

As you are no doubt aware, probably (he 
most important pari of any game is the 
sprites. These are theobjects thai move 
around the screen, shooting at you, 
killing you and generally getting in your 
way. Obviously a good game therefore 
depends on good quality sprites which 
are clear and well animated. The Sprite 
Maker program is extremely powerful, 
in fact I would go as far to say that it is 
one of the best sprite editors I hafle 
come across and i( would stand up well 
on its own. 

Sprite maker has provision for either 
multi-coloured or single colour sprites. 
Horizontal and vertical magnification is 
provided and up to four sprites can be 
placed edge to edge to create one large 
object that can be easily manipulated. 



Once you have defined your basic sprite 
you can then go on to alter it slightly and 
store these new 'pictures' on a different 
frame. You can then run through the 
frames, like a piece of film, and make 
your masterpiece animate. 

All of the details about the size of the 
sprite and the number of animation 
frames that It has are stoned with the 
sprite when you save the sprite to disk. 



Making Music 



The music maker allows you to compose 
your own tunes for inclusion in your 
games. Music is entered under joystick 
control on to what is referred to as a 
musical sheet. This consists of three 
musicalstaves upon which you can place 
the note lor one of the Three available 
voices. Thirteen different instruments 
are provided ranging from snare to 

« harpsichord and any voice can play any 
instrument- 

Entering music is very simple. Select 
the voice that you wish to use. Select the 
length of the note and then place the 
note in its position on the music sheet. 

H vou have no musical knowledge at 
all then my feeling is thai v<>u may nave 
some problems entering your own 
tunes. You could always try the 'suck it 
and see' approach and try moving notes 
around and listening to what results you 




get. Thankfully there are a fair range of 
tunes supplied on the Came Maker disk 
ranging from William Tell to Happy 
Birthday so there should always be 
something to suit your game. 

Sound maker is the part of the pack- 
age that lets you play around with a 'real' 
synthesiser. Again the program is under 
joystick control and everything is easy to 
alter. You can alter the type of wave 
form that you are using, alter the attack, 
decay, sustain and release of the volume 
and put the sound through filters. If you 
don't know what any of the above para- 
meters are then I suggest that you just 
play around, twiddle the knobs and see 
what comes out. It is possible to link 
together a number of sound to create 
one effect. For example one sound may 
be a falling tone, another may be an 
explosion. Stick them together and 
you've suddenly got bombs falling from 
your aircraft. 

And on it Goes 

As I have previously said, this package 
does have its limitations and obviously 
you can't expect to get programs of really 
high quality out of it. However, it is a 
very good step up the ladder of design- 
ing your own games. Even if you can't 
program, the package will allow you to 
create those masterpieces that you so far 
have been unable to do anything about. 
Not only does this package let you try 
'ideas out but it will also allow you to 
grasp what exactly goes into making up a 
game so that when you eventually go it 
on your own and try to write your own 
programs in either Basic or machine 
code you'll know exactly what you must 
do. 

Game Maker is an extremely well 
thought out and easy to use package. 
The documentation is simple enough so 
that a fairly new computer owner could 
be writing games in a few house. All that 
is needed is a good imagination. 

If you do have some ideas for games 
then this is a package that you should 
have in your collection. 





16 bit numbers are the 



subject of Allen Webb's 



foray intro machine code. 



ARE YOU READY FOR THE DELIGHTS 
of 16 bit arithmetic. Even if you're not, 
that's what I intend to deal with in this 
article. 

Up to now we've struggled within 
the constraints of eight bits, which, as 
you will have realised can become very 
messy. 

If we work with 16 bit resolution, 
suddenly everything is simpler. You will 
recall that to increase a value by one, we 
can use the INC instruction. Consider 
listing 1: 



Listing 1 

10 ASSEMBLE 90,1 
90 REM *=$C000 
100 REM INC 900 
110 REM BNE LOOP 
120 REM INC 901 
130 REM .LOOP: RTS 
140 REM | 
150 FOR l=OTO300 
160 SYS 12*4096 

170 PRINTPEEK (901) *256+PEEK (900) 
180 NEXT 



This increments a 16 bit number 
stored in locations 900 and 901. The low 
byte, 900. is first incremented in line 100. 
Line 110 checks to see if the low byte has 
reached zero. If it has, we need to 
increment the high byte. This will be 
obvious if you consider what happens as 
the low byte approaches zero: 

Low byle High byte Combined 

value 



254 
255 
0 
1 



254 
255 
256 
257 



The combined value is the low byte 
plus 256 times the high byte. 

To reduce a memory location, you 
may recall that DEC is used. Listing 2 
does this for a 16 bit number: 



10 ASSEMBLE 90.1 
90 REM *=$COO0 
100 REM LDA 900 
110 REM BNE LOOP 
120 REM DEC 901 
130 REM .LOOP: DEC 900 
140 REM RTS 
150 REM | 
160 FOR IOT0300 
170 SYS 12*4096 

1B0 PRINTPEEK(90ir256+PEEK(900> 
190 NEXT 



The principle of this routine is 
slightly different. The first step is to 
check whether the high byte needs 
reducing. This is done in line llOwhich 
checks for a zero value in the low byte. 
Line 130 decrements the low byte every 
time. 

You will have noted that there is an 
intimate relationship between the two 
bytes in a 16 bit numbers. Before we 
look at this, consider what happens 
when you add two numbers in decimal. 
If the two numbers add to above 10, you 
carry tens. Remember? Consider this 
sum: 

19+ 

3 
22 

The computer works in the same way 
in that if the result of adding two 
numbers exceeds 255. you have a carry 
to tell you about it. This effectively gives 
you nine bits and the carry flag is used to 
tweak the high bit. Addition with carry is 
performed by the instruction ADC. 

Imagine that you wish to add the 
numbers 7 and 22. In binary these are: 

%00000111 7 
+ "nOOQIOnO 22 
%00011101 29 

The result is less than 255 so we can 
still use an eight bit number. Consider 
the addition of SE4 and $3A: 

%1 1100100 SE4 
+ %00111010_$3A 




Suddenly, we have a number greater 
than 255 and the second byte must 
be used. The number is split as: 

%00000001 and %00011110 

In practical terms, how do we 
perform this addition? Consider this 
sequence of instructions: 

CLS 

LDA H SE4 
ADC tt $3A 

The first step is to clear the carry flag 
— this prepares the way for the carry. 
The accumulator is then loaded with the 
number $E4. Lastly. S3A is added to the 
accumulator with the carry flag set as 
required. The result of this sequence is 
to leave the accumulator holding 30 
(binary 00011110) and the carry flag set. 
Consider listing 3: 



Listing 3 



80 ASSEMBLE 90,1 
90 REM *=$C000 
100 REM LDA § 0 
110 REM STA 902 
120 REM STA 903 
130 REM CLC 
140 REM LDA 900 
150 REM ADC 901 
160 REM STA 902 
170 REM LDA 902 
180 REM ADC tt 1 
190 REM STA 903 
200 REM .LOOP; RTS 
210 REM J 

220 INPUT "A.B";A,B 

230 POKE 900.A: POKE 901, B 

240 SYS 12'4096 

250 PRINTPEEK(902)+PEEK(903}*256 



', 100011110 S11F 



This adds two numbers in 900 and 901 
and puts the result in the 16 bit number 
in 902 and 903. Lines 100 to 120 clear the 
16 number and lines 130 to 150 add the 
two numbers. Line 160 stores the low 
byte of the result and lines 180 to 190 
store the carry in the high byte. 

Subtraction is a simlar process albeit 
slightly trickier to understand. The 
relevant instruction is SBC (Subtract 
with Carry) and again the carry flag is 
used to convey information on the 
result of the subtraction. This time, the 
carry is cleared if the subtraction results 
in an underflow (negative number). 
Don't worry about the mechanism of 
SBC this time, I'll deal with twos 
complimenting and other mysteries in 
the future. For now, simply accept that 
SBC is the reverse of ADC. Consider 
listing 4. 



Listing 4 

80 ASSEMBLE 90,1 
90 REM *=$C000 
100 REM SEC 
110 REM LDA 901 
120 REM SBC 900 
130 REM STA 901 
200 REM RTS 
210 REM ] 

220 INPUT "A,B";A,B 

230 POKE 9O0.A: POKE 901 ,B 

240 SYS 12*40% 

250 PRINTPEEK(901) 



The first slep. Line 100. is to set the 
carry flag. The accumulator is then 
loaded with the first number and Line 
130 subtracts the second number. The 
result is put into location 901. Try 
messing about with the routine and see 
what effect it has when you make B 
larger than A. 

Let us consider a useful example. The 
first answer to your last month's 
homework was rather tacky answers at 
the end of this article. Listing 5 gives a 
method using 16 bit arithmetic. 



Listing 5 



80 ASSEMBLE 90.1 

90 REM *=$C000 

110 REM LDA#0 

120 REM STA $FB 

130 REM LDA #04 

200 REM STA $FC 

210 REM LDY#0 

220 REM .LOOP: I DA #42 

230 REM STA ($FB),Y 

250 REM INCSFB 

260 REM BNE LOOP1 

270 REM INC $FC 

280 REM .LOOP1: LDA $FB 

290 REM CMP#$E8 

300 REM BNE LOOP 

310 REM LDA $FC 

320 REM CMP#7 

330 REM BNE LOOP 

340 REM RTS 

350 REM | 



The key to the routine is the 16 bit 
number in locations $FB and $FC. 
Instead of varying the Y register 10 index 
this address, we will keep it set to zero 
and alter the base address. Lines 110 to 
200 set the address to the start of the 
screen ($0400). We then zero the Y 
register. The main loop puts an asterisk 
at the currently addressed location 
(Lines 220 to 230). Lines 250 and 270 
increment the base address by one. 
Lines 280 to 330 compare the base 
address to 807E8 (the last address of the 
screen) and loop back if it hasn't been 
reached. Since we're dealing with 16 
bits, two comparisons (Lines 290and 320 



are required). This is clearly a more 
satisfactory way of working. 

Finally, Listings 6 and 7 give routines 
for the addition and subtraction of two 
16 bit numbers. One number is in 
locations 900/901 and the other in 
902/903. The resulting number is left in 
locations 900/901. 



Listing 6 



80 ASSEMBLE 90,1 
90 REM *=$C000 
110 REM CLC 
120 REM LDA 900 
130 REM ADC 902 
200 REM STA 900 
210 REM LDA 901 
220 REM ADC 903 
230 REM STA 901 
240 REM RTS 
350 REM ] 

360 INPUT "A,B"; A,B 

370 POKE901,A/256:POKE900,A-PEEK 

(901C256 

380 POKE903,B/256:POKE902,B-PEEK 

(903) '256 

390 SYS 12-4096 

400 PRINTPEEK(901)*256+PEEK(900) 



Listing 7 



80 ASSEMBLE 90,1 
90 REM '=$C000 
110 REM SEC 
120 REM LDA 900 
130 REM SBC 902 
200 REM STA 900 
210 REM LDA 901 
220 REM SBC 903 
230 REM STA 901 
240 REM RTS 
350 REM | 

360 INPUT "A,B";A,B 

370 POKE 901 .A/256: POKE 900.A- 

PEEK(901)*256 

380 POKE 903,B/256:POKE 902.B- 

PEEK(903)*256 

390 SYS 12*4096 

400 PRINTPEEK(901)*256+PEEK<900) 



I now want to briefly discuss an 
alternative way of manipulating 
numbers. Consider the binary number 
seven: 

%00000111 

If the bits are shifted left one place 
with the left-most bit lost and the right- 
most bit set to zero, we get: 

%00001110 

or the number 14. What we have done is 
multiply the number by two. Similarly, if 
you shift the bits right one place, we 



divide by two. The instructions ASL 
(Arithmetic Shift Left) and LSR (Logical 
Shift Right) perform these functions. To 
multiply a number in location 900 by 
two, you simply use: 

ASL 900 

to multiply by four, use: 

ASL 900 
ASL 900 

and so on. 

In fact, these instructions do not 
lose the end bit. As they shift the bit is 
pushed into the carry flag: 



ASL 



Carry * 





































LSR 







0 »- 



















Carry 











— 



To allow you to make use of the carry 
flag to manipulate 16 bit or larger 
numbers, there are a further two 
instructions: 



ROR (Rotate Right one bit) 

























Carry 





ROL (Rotate Left one bit) 




These rotate the bit pattern but 
incorporate the carry bit into the 
number. Consider the pair of bytes: 



BYTE 1 

00000000 



BYTE 2 

10101010 



170 



Let us shift byte two left once and then 
roll byte one left once. The left-most bit 



of byielwo moves into (he carry flag and 
is Ihen moved into byte one giving: 

BYTE 1 BYTE 2 

00000001 01010100 = 340 

Voila! We've multiplied a 16 bit 
number by two. The general methods of 
doing this are: 
Multiply by 2: 
ASL Low byte 
ROL High byte 
Divide by 2: 
LSR High byte 
ROR Low byte 

The shift and roll instructions operate 
on the accumulator and in absolute, 
zero page, absolute.X and zero page,X 
addressing modes. We'll meet all of 
these commands again so dont fear if 
you haven't fully grasped them. 

OK, pain time: 

1) What sequence of instructions will 
multiply an eight bit number by 256 (a 
bit of a trick question this one)? 



2) Write a simple routine to increment a 
16 bit number of 40. 

3) Starting with a 16 bit number in 
900/901 (number A) and a 16 bit number 
in 902/903 (number B), write a routine 
which will perform the calculation 
2*A+B/2 and store the result in locations 
904/905. 

Next time, more arithmetic 
mysteries, the BIT instruction and a bit 
of Boolean. 



The second routine copies the top 
ine of the screen to the 20th line. 



10 ASSEMBLE 90,1 
90 REM '=$C000 
100 REM LDY #0 
110 REM LDA tt 42 
120 REM .LOOP: STA 1024.Y 
130 REM STA 1274.Y 
140 REM STA 1524.Y 
150 REM STA 1774,Y 
160 REM INY 
170 REM CPY tt 250 
180 REM BNE LOOP 
190 REM RTS 
200 REM | 



10 ASSEMBLE 90,1 
90 REM *=$t000 
100 REM LDY #0 
120 REM .LOOP: LDA 1024,Y 
130 REM STA 1824.Y 
140 REM INY 
150 REM CPY #40 
160 REM BNE LOOP 
170 REM RTS 
180 REM 1 



Fool Note 

Due to a problem with the printer used 
for this series, the tt characters in 
previous articles have been replaced by 
a £ symbol. 

We hope this won t happen in the 
future and that it hasn't caused too 
ntany headaches. 




YOUR COMMODORE - 


- CLASSIFIED ADVERTISEMENT - ORDER FORM 

i 










i i i 


ii 














Advertise nationally in these 
columns for only 40p per word (min 
charge 15 words). Simply printyour 
message in the coupon and send 
with your cheque or postal order 
made payable to Argus Specialist 
Publications Ltd to: 

DUNCAN NEILSON, CLASSIFIED DEPT. 
ASP LTD, 1 GOLDEN SQUARE, 
LONDON W1 

Tel: 01-437 0699 


























































































ADVERTISERS PLEASE ADD 15% VAT Tel "° (aay) 

Please place my advert in YOUR COMMODORE for issues. 

Please indicate no. of insertions required. Signed 



YOUR COMMODORE 



Lineage: 40p per word. r\ 1 wmm 

(46p ind. VAT). 
Semi display: £9.00 per single column centimetre (plus 
VAT). Ring for information on series bookings/discounts 

All advertisements in this section must be prepaid 
Advertisements are accepted subject to the terms and conditions 
printed on the advertisement rate card (available on request). 




01-437 0699 

EXT. 291 

Send your requirements to: 

ASP LTD, 1 GOLDEN SQUARE, 
LONDON W1 



SOFTWARE 



REPAIRS 



Till* 

Commando 

Games Design ei 

ACE (C-161 

ACE |Plu«4) 

Airwolt 

Steve Davis Snooker 

Daley Thompson Slat Events . 

Jump Jet 

Games Pack I US games) 

Games Pack " (IS games) ... 

world Cup Foolball 

Guiiwmg Falcon 

The Boss 

Am rog Favourite Four 

C-16 Classics 

C-16 Classes E 

Gremlins 

Sp * derma n' Hulk Pack 

Atlantis 

Grand Master Chess lC-i«r , . 
Grandmaster Chess (Pius 4| . 

Tom Thumb , 

S*ordol Oostmy 

Xargo"s Re.enge 

World Senes Baseball 

Mead Alignment 



CI 6/ PLUS 4 SOFTWAHF 



RRP 

795 
.995 

9 95 

10 95 

7 9f> 
6 95 
995 

.5 95 

5 9S 

6 95 
.6 95 

695 
.7 95 
9 95 
.9 95 

7 95 
.7 95 
.6 95 

8 95 
8 95 
695 
695 
.695 
.795 
.494 



OUR 

$.75 
6.50 
8.50 
9.40 
5.95 
675 
5.95 
8 SO 
4.95 
4.95 
5.95 
5.95 
595 

IIS 

8.50 
6.75 
6.75 
5.95 
7.75 
7.T5 
5.95 
5.95 
5.95 
6.75 
4.50 



RRP 

7.95 

7 95 

5 95 

5 95 

5 95 

9 95 

«»5 



Tills 

Beach Head 

Defence 16 

Dark Tower 

Wizard and Princess . . 

Classic Adventure 

Super gran 

Canoe Slalom , . 

BUDGET SOFTWARE 

Maslertrontc Titles (CI 99 each) 

Formula I Simulator 

Vegas Jackpot 

Tulti Fruity 

BUX Racers 

Rock man 

Squirm 

Spoct'peoe 

Big Mac 

Mr Puniverse 

Solar Titles (£2 99 eachl 

Knock-Out 

Mission Mars 

Suicide Run 

Ahen Attack 

Cruncher 

Quick Draw 



OUR 
6.75 
6.75 
4.95 
4.95 
4.95 
850 
5.95 



Buy any 3 
lor £5.25 



Buy any 3 
(or C7.95 

Of 

Buy any 2 
to* £5.45 



All prices include postage and packing in the U K 
Payment with orde- by cheque or postal order please to 



C-16 JOYSTICK £9 95 



Plnase stale 

which micro 



JOTMAN SOFTWARE (Oepl V.C.I) 
65 Heol Gwys. Upper Cwmtwrch. Swansea SA9 2XO. Tel: 0639-830934 



DERBY DAY 

C16/14 CBM64 
£5.75 £6.75 

'Visual Form Guide 

'On Screen Action 
•Realistic Betting 

'Over 50 Horses 
'10 Race Tracks 

"4 Racing Distances 

Bloomfield Software 

PO Box 69, Blackpool FY2 9EX 



SOCCER MANAGER Manage your 
own team. 4 divisions. F A Cup. 
transfers tactics etc 

RACENIGHT — Run your own 
racenighl. up to 10 players Exciting 
horse racmg game 

SOCCER QUIZ — Test your soccer 
knowledge, hundreds of Questions. 
Any one for £3.99, 2 'or £6.99. 3 lor £8.50 
T. PALMER. 59, Old Park Road. 
Shetlleld 8. Tel: 0742 749498 



Genealogy Program 

lor the 64 & 128 "FAMILY TREE" will 
produce Pedigree Charts. Family 
Group Records. Individual Files, 
indexes. Searches ol Ancestors LDS 
version available 
£32.95 including air mail service. 

GENEALOGY SOFTWARE 
1046 Parkwood Ave, Sarnia. 
Ontario, Canada N7V 3T9 



ADVERTISE IN 
YOUR COMMODORE 
PHONE 01-437 0626 
FOR DETAILS! 



SOUTH EAST KENT SOFTWARE 


Oept Y/C. PO Box 152. Orpington. Kent. 


We slock lor Commodore. 


Please slate 


which model 


Send S A E lor lull price list 


COMMODORE 64. GAMES 


Silent Service 


Biggies 


Super bow I 


Ghosts W Goblins 


Oladiatg/ 


Mugsys Revenge 


Way ol the Tiger 


Bomb Jack 


Commando 


Back to the Future 


Winter Games 


Summer Games II 


BUSINESS ft EDUCATION 


Superbase 64 


Superscript 


Home Accounts 


Maillisis 


Stock Control 


VAT File 


HARDWARE 




Joysticks 


Music Makers. 



ALPHASOFT 
SPECIAL OFFERS 
Hardb.i i £6.99 Fair light £6.99 

Psi-5 Trading Co Soperpowl £6.99 



V 



Law Of I he Writ 

£699 

Zmits £6 50 
Z Zap Stivers 



Bomb Jack £6.99 
rop T<ttesi £6 99 



AND MANY MORE 1 

Cheque/P O to ALPHASOFT 
115 Parsonage Road. Wtlhlngton. 
Manchester M20 9WZ 

IS A.E tor Pr.ce List P»P included) 



Animal Records 

maintained with "PEDIGREE" lor the 
64 & 128 Produces Litter. Awards. 
Breeding. Show, and individual records, 
and Pedigree Charts £44.95 including 
air mail service 

GENEALOGY SOFTWARE 
1046 Parkwood Ave, Sarnia, 
Ontario, Canada N7V 3T9 



IMPACT, for the Commodore 
64/128 is a new monlhly com- 
puterised magazine, on cassette 
only. There's Reviews, Tips. 
Quizzes, elc Plus a Free Text 
Adventure. All this for only £2.00. If 
you want to send in your own Letter. 
Tips, Review, etc. then just send 
C1.90 when you order impact, 
impact 1 will be out in one month 
Send Cheque/P.O.. made payable 
to M. Sibthorpe, 18 The Stray. 
Darlington. Co Durham DL1 1EP 



64 SOURCE GENERATOR; an 

advanced utility that will produce 
source code from programs in 
memory: imagine being able to 
take any machine language pro- 
gram and convert it to true source 
code, complete with labels SAE 
more into; C6.95 Tape: £8.95 Disk. 
Cheques/POs to K. Otton. 19 
Meadows Close. London E1 0 7DH 



REPAIRS 



COMMODORE REPAIRS 

Commodore repairs by Commodore 
approved engineers Repair prices 
V* 20 modulator £8.05. Vic 20 £15.00 
C8M 64 (rom £20.00 C2N fro-" £9.00 1541 
horn £20.00 C64 psu £13.90. Spectrum 
£16.50. Dragon £32.00. Electrons. Atari 

For ^gogggif mrp*"* 

36 Burlington Road, Burnham, 
Bucks SL1 7BQ. 



TRIDENT ENTERPRISES 
LTD 



Commodore 64 — £15. Vic 20 
— £12.50. Spectrum — 
£10.50, QL - £30. 1541 Disk 
Drives — £20. and all Com- 
modore systems. Send faulty 
machine with note describing 
fault to: 

UNIT 7. WENTWOHTH INDUSTRIAL 
COURT. GOODWIN ROAO. BRITWELL. 
SLOUGH TEL: 0753 21391 

Overseas enquiries welcome. 
(Above prices are exclusive ol 
parts and VAT). 



When replying to 
classified advertisements 
readers are recommended 
to take steps to protect 
their interest before 
sending money. 



LONDON 
COMPUTER REPAIR 

CENTRE 

Spectrum. Commodore. BBC. 
Atari. Amstrad etc 
Low cost repairs from £12.00 
Collection & delivery optional 
Used Micro's boughi. sold, 
exchanged. 
Call NIGEL: 01-863 7166 

MICRO SUPPORT 

Unit 3. 15 Springfield Road. 
Harrow, Middx HA4 10F. 




The & 

PRESS COMMODORE 
REPAIRS!. 

WHY PAY HIGH 
FIXED' PRICES 

FOR PROFESSION AlISM - "Of the 
repair (ompanm Sinclair Uvr woke 
io MAMCOMP setred the MOST 
PROFESSIONAL wren it can* to adv« 
and a tteipfui attnuW" AUG 85 
why delay - our estimates are 
free ano without obligation if 
you 00 not uke our estimate 
we will return tke computer 
and refund the postage 
incurred! 

MANCOMPltd 
(Dept YC5) 

Printworks tarte. Levenshulme. 
Manchester MI93JP 
OPEN MOM Sfl BamtpTpn 
|06t 224 WtMH 



PROM-64 

EPROM programmer for8K. 16K. 
ZIF socket. Vpp generator & 
software on tape £34.75 
64-CARTndqe. 2 ■ 8K E5.«S 
EPflOMS QTY 1-10. 2716- 128 £2.99 
DHOBI-2 EPROM eraser £22.95 
UK • 15% VAT 
Cambridge Microelectronics 
One Milton Road, Cambridge 
CB4 1UY 
Tel: (0223) 314814 Tlx: 81574 



SPORT 



HORSE FORM 
COM M/12S The ultimata in Horseracing 
why pay CS tor one-ofl time 
ratings when you can continually produce 
your own Program holds data ror all flat 
racing tracks in Britain and Ireland 
Get The Edge. Get Horse lorm 
C7.9S cassette CheouosPO to 
SEESAW SOFTWARE. 
74 Fleetham Gardens. Lower Eartey, 
Reading RG6 48 Y. 



WARNING NOTICE 



Advertisements placed in this magazine are to be in strict compliance with our standard conditions (copies of which 
conditions are available on request) and on the clear understanding that the advertiser warrants that his 
advertisement(s) does not infringe any copyright or condition of sale of any interested party in the advertised 
product. 

Further, the advertiser indemnifies the proprietors of this magazine in respect of costs, damages, or any other claims 
brought against them as a result of legal action arising from the publication of the advertisement. 

Any breach of these terms or the said conditions may result in prosecution of the advertiser by the proprietors. 



FOR SALE 



HARDWARE 



FOR SALE 



GADGET 64 £6.95 

Programming tool kit tor CBM64 
specially designed lor tape users. 

Provides. RENUMBER (inc. GOTO. 
GOSUB). APPEND. DELETE, and a 
special PARK facility (allows two pro- 
grams in memory lor editing, append* 
ing. etc i 

Serd your name, address & PO cheque 
for £6 95 (P&P free) to: 

J&J GILMOUR LTD 

Depl. YCS86. 4 Copsr Close. Li is. 
Hampshire GU33 7EW. England. 
Tel: 0730-893430 



DISCS 



!!! FREE DISKS !!! 

For every 1 0 ordered we supply 1 1 

SS/DD £10.99 SS/QD £13.19 
DS/DD £13.19 DS/QO £15.39 

S/Side £27.49 D/Side £32.99 

All prices INCLUDE VAT 
Delivery is FREE 
All disks guaranteed tor 12 months 

Cash with order please lo 
HOLLBARN Ltd., Dept CM1, 
8 Alexander Road. Slotfold. 
Hltchin. Herts. SG5 4NA 



GENERAL 



BUY OR SELL your unwanted 
software, books, and hardware We 
put you directly in contact with 
each other in your area. Details: 
Second Hand Computer Sales 
Agency 38, Bowling Altey Walks, 
Dorchester. Dorset Tel (0305) 
64849 (24 hrsj. 



WORD DEALER, an exciting 
word game for up to four 
players. Four play levels too! 
Send cheque/P.O. £3.25 to R. 
Porter, Woodside House, Abbey 
Road, Scone. Perthshire. PH2 
6LL (C16 and plus/4). 



* BACK-UP-SYSTEMS FOR CBM-64 & VIC-20 * 

Trie BACK-UP-BOARD Mk. 1 is the fastest, and easiest way lo back up your tape 
programs. With this board you can connect a second C8M cassette deck to your 
computer. You can copy a program on the second deck while the original loads horn 
the first. You can back up all last loaders, data hies, etc BACK-UP-BOARD Mk i 
£10.00 Inc. P&P. 

BACK-UP-BOARD Mk 2 This new version ot our famous BACK-UP-BOARD is now 
proving so popular it is outselling our original Mk 1 This new board now works two 
ways Switched to NORMAL it operates as the Mk 1 Switched to GENERATE . 64' 
owners can use our special transfer software to regenerateacopy of a program on the 
second deck as it loads from the first This method can produce a betler Quality copy 
than the original BACK-UP-BOARD Mk 2 & Software £14 50 mc P&P Conversion 
service Return your Mk. 1 Board, if purchased from us. to be modified to Mk 2 for 
£450 including software & P&P 

AZIMUTH HEAD ALIGNMENT TAPE by INTERCEPTOR tor 64 Use this test tape 
with your '64' lo adjust the heads ol your decks to make a perfectly matched pair. Full 
Instructions and screwdriver supplied. £8 50 mc. P&P. 

ROM SWITCH /RESET BOARD Fit this board in the expansion port of your 64' and 
you can reset ALL programs. Resets programs that a standard reset switch can't A 
socket for a 2764 8K eprom is also fitted Fuji instructions supplied £6 95 inc. P&P 
Please send SAE for more details of the above products. Send your cheque PO to: 

TURBOTRONIC 
46 Ripon St., Parkinson Lane. Halilax, West Yorkshire HX1 3UG. 
Tel: (0422) 52020 
(Europe add 50p outside Europe add £1.50) 



FOR HIRE 



HIRE HIRE 

STAFFS COMPUTER LIBRARY 

CBM 64 OWNERS 

Join the friendly Library. We give you what you want, (f a title 
is not on our list then we will get it, if it's still available. 
(Games only! 

All the latest Titles 

• Full 7 Days Hire 

• Low Hire Cost. From 75p 

• Up to 4 Games per week 

• All games original 

• Lots of American Titles 

• Low Hard and Software prices 

• Membership ONLY £5.00 

Free m/c Monitor on joining 

Send your cheques/postal orders payable to: 
STAFF COMPUTERS 
The Newlands, Greensome Lane. Stafford 



VIC-20/CBM-64 
SOFTWARE HIRE 

Free Membership. Hundreds of Titles 
to choose from Send SAE lor your 
Free Hire Kit: 

VSH (YM). PO BOX 65. NOTTINGHAM NG1 



COMMODORE 64 cassette 
library. Hire latest games and 
educational software, only one 
price £1 50 per cassette 7 days 
hire. Delails SAE please: C.C.L. 
19 Darrell Way. Abingdon. OX14 
1 HQ. 



ADVERTISERS PLEASE NOTE:— 
COPY DEADLINES FOR FUTURE ISSUES OF YOUR COMMODORE 
ARE AS FOLLOWS:- SEPT ISSUE - 24th JUNE 
OCT ISSUE - 28th JULY. NOV ISSUE - 26th AUGUST 
WE WORK WELL IN ADVANCE SO START THINKING NOW! 



MOONRAKER £7.95 
Space Flight Gam* tor the CBM64 

Features: Animated displays of flight 
over surface craters Phaser Ray to 
shoot ahen craft score and flight indi- 
cator;. Sophisticated game using 

advanced display techniques 
Send your name address & PO cheque 
for £795 (P&P free) to: 

J&J GILMOUR LTD 

Dept. VC586. 4 Copse Close. Llss. 
Hampshire GU33 7EW. England 
Tel: 0730-693430 



HARDWARE 



Super Breaker 
Back-Up Board 

For the Commodore 64. CBM 120 and 
VIC-20 When a second CBM type cas- 
sette unit is connected to the Doard it 
will make security bach-up copies ol 
cassette based software, including 
Turbo/Fast Loaders. Base and/or 
Machine Code and Oata Files No 
additional software is needed Very 
User Friendly, the back-up copy is 
made on the second cassette while the 
original is loading on the first Price at 
£6 95 Plus P&P 

RESET CARTRIDGE for CBM 64 This 
cartridge will reset all. yes all. memory 
resident programs Including all pro- 
grams where standard resel switches 
fail Price £7 95 - P&P 

P&P 55p UK (Europe add £1 00. else- 
where add £2 00) Send cheque'postai 
order, or a stamp tor details to: 

C. Kent. 26 Northcape Walk, 
Corby, Northants. NN1S 9DQ 
For enquiries telephone (0536) 742622 




HOME ACCOUNTS 

Put your house in order! 
Probably home computing's 
best use! Comprehensive 
coverage ol bank accounts. 
Credit cards. HP in-built 
accuracy check. Records all 
transactions. Projects cash- 
flow for any period ahead. 
Available for Complete Com- 
modore Range. £8.45 or free 
details from: 

Discus Software 

Freepost 
Beach Approach 
Brixham TQ5 8BR 
Tel: 08045 55532 



Why pay repair bills 
when you can solve or 
prevent most of your 
1541 and 1570 disk 
drive problems 

for only £19.95 

Every time you use your 
disk drive the protection 
on your software bangs 
your playing head, 
eventually knocking it out 
of place. Now with our 
very easy to use Magic 
Disk Kit with a clear book 
of tips you can remedy 
head alignment faults 
and give simply 
maintenance to your 
machine to give better 
performance and longer 
life. 

Available from good 
computer shops or:- 



Robtek Lid. Unti4, Islewwih Business Complex 
St John's Road, Isleworih, Middx. TW7 6NL 
Telephone: 01-847 4457 



WELCOME TO THE WORLD 
COMMODORE 

Maintenance, Service, Support, Training 
from your No 1 ^©[^[^©[DOlSlI dealer 



HARDWARE 



»C128D with Monitor & Printer 
MPS 1000 NLQ. 
SOFTWARE 
ACCOUntS (cash book & VAT) g W/P, 
Database. Spreadsheet, 
all for only £879.00 

C64 Compendium 1 89.00 

CI 28 Computer 265.00 

C128D inc disk drive 489.00 

C128D inc d/d, Monitor. .585. 00 

1 570 S/S disk drive 1 95.00 

1571 D/S disk drive 265.00 



1901 Colour Monitor 285.00 

1900 80 Column 145.00 

Green/Amber Screens 95.00 

Cable for above 10.00 

C128 40/80 cable 14.95 



DPS 1 101 Daisy Wheel 
MPS 1 000 NLQ inc.T/F 



295.00 
269.00 



Superbase 64. .59. 00 I 
Superbase 128 79.00 



Superscript 64. .49. 00 
S/Script 128. ...74.00 

S/Script + S/Base 64. .99. 00 
S/Script + S/Base 128.. 139.00 

[comprint interface .61 .99||bek interface. 69.00 
Miracle modem.... 1 1 3.25 1 CBM modem. ...75.00 
MS2000 Mouse.. 69.90 



PHONE for FULL LISTS 



E^KIMflAMflOG Computer Centres' 
48 Junction Rd Archway London N19 5RD 
238 Musvell Hill Broadvay London N10 3SH 




Listings will be much 



COMMODORE LISTINGS ARE RATHER 
well known for the horrible little black 
blobs that always abound. Unfortunately 
the graphics characters which are used to 
represent graphic and control characters 
do not reproduce very well and they are 
also difficult to find on the Commodore 
keyboard. 

In future all control and graphics 
commands will be replaced by a mnemonic 
within square brackets. This mnemonic is 
not typed out as printed in the magazine 
but rather the corresponding key or keys 
on the keyboard are pressed. For example 
|RIGHT] means press the cursor right key, 
you do not type in [RIGHT]. All of the 
keywords, what keys to press and how 
they are shown on the screen are shown 
below. 

Any character that is accessed by pressing 
shift and a letter will be printed as 

[Stater]. 

|SA] shift and A 
[S+] shift and ♦ 

Any character that is accessed by 
pressing the Commodore key and a letter 
will be printed as (Getter) 
[CA] Commodore and A 
[C+] Commodore and + 
IC11 Commodore and 1 



Mnemonic Symbol what to press 



[RIGHT] 

[LEFT] 

[UP] 

[DOWN] 

[Ft] 
[F2] 
[F3] 
[F4] 




left/right 




shift left/right 



Shift & up 
/down 



up/down 



shift & f1 




<3 



shift & f3 



LISTINGS 



If any characters are repeated the 
mnemonic will be followed by a number. 
This number is how many times you 
should enter the character. Any number 
of spaces over one will also be 
represented in this form 
[RIGHT10] press cursor right 10 times 
[C+10] press Commodore and + 10 
times 

[SPC10] Press the space bar 10 times 



Any other characters should be easily 
recognisable for example CTRL-N means 
press CTRL and N and LEFT-ARROW 
means press the left arrow. 

Any number of mnemonics can be 
enclosed in brackets for example 

[SA10,SPC10,SA10] 

means type 10 shift A's 10 spaces and 
another 10 shift A's. 



Mnemonic 



[F5] 



Symbol what to press 




[F6] 



[r-7] 



[F8] 



[CLEAR) 



[HOME] 



[RVSON] 



[RVSOFF| 







f5 



shift & f5 



f7 



shift & f7 

shift & CLR 
/HOME 



CLR/HOME 



CTRL & 9 



CTRL & 0 



Mnemonic Symbol what to press 



[BLACK] 

[WHITE] 

[RED] 
(CYAN] 

[PURPLE] 

[GREEN] 

[BLUE] 

(YELLOW] 








CTRL & 1 



CTRL & 2 



CTRL & 3 



CTRL & 4 



CTRL & 5 



CTRL & 6 



CTRL & 7 



CTRL & 8 




4 



LEGIONNAI 



misiio 



messages to the garrison headquarters. 
As you travel through the scrolling landscapes, 
you will be under constant fire from the tribesmen bent on 
reaching the fort. You will have to use your machine gun with great ski 
to get past them. There are seven separate areas of scrolling landscapes before 
the fort can be reached and each area requires increasing skill. 

C16/PLUS 4 £5.95 



HMM tW "< 




o ♦ © 




BONGO CONSTRUCTION SET 
Bongo Construction Set is a hilarious family game. Bongo 
■ trying to reach the princess, hotly pursued by monsters. 
He uses ladders, slides, transporters, lifts and trampolines 
lo elude his pursuers but they seem to know his moves 
before he makes them. There are six stages with five skill 
levels. Vou can design your own stages using the joystick 
end save them on cassette or disk to play later. 

C16/PLUS4 £5.95 



SPACE PI LOT 
Space Pilot, the legendary hero, is under constant attack 
by alien ships with one aim - the destruction of his craft. 
The alien craft attack singly or In battle formation. 
Equipped with heat seeking missiles, their attack is deadly 
as well as relentless. Space Pilot with full 360 degrees 
scrolling and four stages, demanding ever increasing skills 
retains all aspects of a smash hit on CBM 64. 

C16/PLUS 4 £5 95 



THAI BOXING 

A unique combination of 
the noble art of Boxing 
and skills of Martial arts. 
Three stages of increasing 
skill. 

16/PLUS4 £5.95 






ORTHCOMUMG ANCO RELEASES 




WATER SPORTS 

Water Skiing and Shooting the Rapids 



C16/PLUS4 £6.95 




WATER SPORTS PLUS 

Enhanced version for PLUS 4 owners or C16 with 16K expansion includes an 
wtra event. Power Boat Racing. £7.95 PLUS 4/C16* 16K. 



CHAMPIONSHIP TENNIS 
A Tennis Simulation quite capable of 
creating the drama of the Centre 
Court. Available June. 

C16/PLUS 4 £5.95 



MICRO TEXT 

Ideal for home user. Facilities include 
Centring and full Left and Right 
justification. 

£7.96 (Cess). £10.95 (Disc). 



MICRO BASE 

An easy to use data base with full sort 
facilities. Ideal for keeping track of 
records or stamp collection. Club secretaries will find it very handy for 
storing names and addresses of members. Designed to print self-adhesive 
■abets. Selected names and addresses can be selected for printing. 

C7.95 (casst. £t0.9S (Date). 



C16 and PLUS 4 REFERENCE BOOK 
The book has been specially written for ANCO' 
It is a comprehensive guide for a beginner and a 
professional programmer. June. 




ANCO SOFTWARE. 4 WEST GATE HOUSE, SPITAL STREET, DARTFORD, KENT. DAI 2EH. 

Telephone: 0322 92513/92518. 
Mail Order: Payment by Cheque, P.O., Visa or Access. 24 Hour Credit Card Service: 0322 522631. 



Choosing the right computer 
is a good start — but can you 
find the right software? 



a 

viipfRSOFT 




MUSIC MflSTEB ^busicalc 




At SUPERSOFT we're very conscious of the 
fact that people who spend several hundred 
pounds on computer equipment are looking 
to do rather more than play Space Invaders 
Financial planning is a rather grand name 
for something you've been doing all your life 
— making ends meet! Perhaps if Mr 
Micawber had used BUSICALC he would 
have been able to balance the books a little 
better. 

For home, club or small business use 
BUSICALC 1 should pay for itself in no time at 
all; for larger companies we recommend 
BUSICALC 3. one of the few really valuable 
programs that you can learn to use in a day 

Although your Commodore 64 is a power- 
ful musical instrument you need to be a 
pretty good programmer to understand how 
it all works Unless, of course, you buy MUSIC 
MASTER! 

To use MUSIC MASTER requires no prior 
musical knowledge, though in the hands of 
an experienced musician it will prove an 
invaluable tool You don't need to know the 
first thing about programming either! MUSIC 
MASTER is the musical equivalent of a word 
processor, remembering the notes you play 
and allowing you to replay and edit them as 
you wish 




INTERDICTOR PILOT is a space flight 
simulator. Nowadays simulators are widely 
used to train pilots and astronauts because - 
to be frank - it's a lot cheaper (and safer) 
than the real thing' 

Imagine, "if you will, life in the 22nd 
century space travel is commonplace, and 
on the outskirts of the galaxy the first war 
between civilizations is being fought. A short- 
age of trained pilots has prompted the Feder- 
ation to develop a computer simulation that 
allows raw recruits to gain experience with- 
out paying for their mistakes with their lives 
With the aid of your Commodore 64 you too 
can learn to pilot the Interdictor Mk 3 craft 
But be warned - this is no game! 




SUPERSOFT, Winchester House. Canning Road. 
Wealdstone, Harrow. Middlesex HA3 75J 
Telephone: 01-861 1166 



Other SUPERSOFT products include the 
MIKRO ASSEMBLER cartridge, the only 
assembler that's ideal for beginners yet pow- 
erful enough for the professional (most of 
our competitors use it!). The VICTREE cart- 
ridge adds dozens of commands to Basic 
including toolkit aids and disk commands; or 
on disk there's MASTER 64, a really com- 
prehensive package for the keen prog- 
rammer 

Of course, we do also publish games 
programs, and with classics like STIX, QUINX 
and KAMI-KAZE m our range we are one of 
the market leaders But we most enjoy 
coming up with the sort of programs that are 
going to be in use for months and years, not 
hours and days - the sort of programs that 
make you glad that you bought a computer - 
and glad that you bought SUPERSOFT' 

You won't find SUPERSOFT products on 
the shelves of your local supermarket But 
most specialist shops stock titles from our 
extensive range (and are prepared to obtain 
other programs to order). However you can 
also buy direct by sending a cheque (pre-paid 
orders are post free!), by calling at our 
offices, or over the telephone using your 
ACCESS card